/* * Licensed to the Apache Software Foundation (ASF) under one or more contributor license * agreements. See the NOTICE file distributed with this work for additional information regarding * copyright ownership. The ASF licenses this file to You under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance with the License. You may obtain a * copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package org.apache.geode.internal.cache; import java.io.File; import java.util.Arrays; import org.junit.Ignore; import org.junit.Test; import org.junit.experimental.categories.Category; import org.apache.geode.LogWriter; import org.apache.geode.test.junit.categories.IntegrationTest; /** * Disk region perf test for Persist only with Async writes and Buffer. Set Rolling oplog to true * and setMaxOplogSize to 10240 * * If more than some number of files are open, an Exception is thrown. This ia JDK 1.4 bug. This * test should be run after transition to JDK 1.5 to verify that the bug does not exceed. * * The disk properties will ensure that very many oplog files are created. * * This test is currently not being executed and is marked with an underscore */ @Category(IntegrationTest.class) public class Bug34179TooManyFilesOpenJUnitTest extends DiskRegionTestingBase { private static int ENTRY_SIZE = 1024; private static int OP_COUNT = 100000; private LogWriter log = null; private DiskRegionProperties diskProps = new DiskRegionProperties(); @Override protected final void postSetUp() throws Exception { File file1 = new File("testingDirectory/" + getName() + "1"); file1.mkdir(); file1.deleteOnExit(); dirs = new File[1]; dirs[0] = file1; diskProps.setDiskDirs(dirs); diskProps.setPersistBackup(true); diskProps.setTimeInterval(15000l); diskProps.setBytesThreshold(10000l); diskProps.setRolling(true); // set max oplog size as 10 kb diskProps.setMaxOplogSize(10240); region = DiskRegionHelperFactory.getAsyncPersistOnlyRegion(cache, diskProps); log = ds.getLogWriter(); } /** * currently not being executed for congo but after transition to JDK 1.5, this test should be * executed. */ @Ignore("TODO: test is disabled") @Test public void testPopulate1kbwrites() { final byte[] value = new byte[ENTRY_SIZE]; Arrays.fill(value, (byte) 77); for (int i = 0; i < OP_COUNT; i++) { region.put(new Integer(i), value); } closeDown(); // closes disk file which will flush all buffers } /** * cleans all the directory of all the files present in them */ protected static void deleteFiles() { for (int i = 0; i < dirs.length; i++) { File[] files = dirs[i].listFiles(); for (int j = 0; j < files.length; j++) { files[j].delete(); } } } }// end of Bug34179TooManyFilesOpenJUnitTest