1 /* TestUtils 2 * 3 * $Id: TestUtils.java 4644 2006-09-20 22:40:21Z paul_jack $ 4 * 5 * Created on Dec 28, 2004 6 * 7 * Copyright (C) 2004 Internet Archive. 8 * 9 * This file is part of the Heritrix web crawler (crawler.archive.org). 10 * 11 * Heritrix is free software; you can redistribute it and/or modify 12 * it under the terms of the GNU Lesser Public License as published by 13 * the Free Software Foundation; either version 2.1 of the License, or 14 * any later version. 15 * 16 * Heritrix is distributed in the hope that it will be useful, 17 * but WITHOUT ANY WARRANTY; without even the implied warranty of 18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19 * GNU Lesser Public License for more details. 20 * 21 * You should have received a copy of the GNU Lesser Public License 22 * along with Heritrix; if not, write to the Free Software 23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 24 */ 25 package org.archive.util; 26 27 import java.lang.ref.SoftReference; 28 import java.util.LinkedList; 29 30 /*** 31 * Utility methods useful in testing situations. 32 * 33 * @author gojomo 34 */ 35 public class TestUtils { 36 37 /*** 38 * Temporarily exhaust memory, forcing weak/soft references to 39 * be broken. 40 */ 41 public static void forceScarceMemory() { 42 // force soft references to be broken 43 LinkedList<SoftReference> hog = new LinkedList<SoftReference>(); 44 long blocks = Runtime.getRuntime().maxMemory() / 1000000; 45 for(long l = 0; l <= blocks; l++) { 46 try { 47 hog.add(new SoftReference<byte[]>(new byte[1000000])); 48 } catch (OutOfMemoryError e) { 49 hog = null; 50 break; 51 } 52 } 53 } 54 }