/**
 * Copyright (C) 2011 Akiban Technologies Inc.
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Affero General Public License, version 3,
 * as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Affero General Public License for more details.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program.  If not, see http://www.gnu.org/licenses.
 */

package com.akiban.server.test.daily.slap;

import static org.junit.Assert.assertTrue;

import org.junit.Test;

import com.akiban.ais.model.TableName;
import com.akiban.server.test.daily.DailyBase;

/**
 * This test simply creates and then drops 2000 tables. Prior to the
 * fix for 772047 this caused an OOME.  Completion of this test constitutes
 * success.
 * @author peter
 *
 */
public class LotsOfTablesDT extends DailyBase {
    private final static int TABLE_COUNT = 2000;
    
    @Test
    public void createLotsOfTablesTest() throws Exception {
        int was = -1;
        for (int count = 0; count < TABLE_COUNT; count++) {
            String tableName = String.format("test%04d", count);
            int tableId = createTable("test", tableName,
                    "I INT, V VARCHAR(255), PRIMARY KEY(I)");
            assertTrue(was != tableId);
            was = tableId;
        }

        for (int count = 0; count < TABLE_COUNT; count++) {
            String tableName = String.format("test%04d", count);
            ddl().dropTable(session(), new TableName("test", tableName));
        }
    }
}

@@ -738,16 +738,126 @@
 tTrue;%0A%0A
+import com.akiban.server.service.config.Property;%0Aimport com.akiban.server.store.PersistitStoreSchemaManager;%0A
 import o
@@ -871,16 +871,16 @@
 t.Test;%0A
-
 %0Aimport 
@@ -959,16 +959,76 @@
 yBase;%0A%0A
+import java.util.Collection;%0Aimport java.util.Collections;%0A%0A
 /**%0A * T
@@ -1301,20 +1301,263 @@
 = 2000;%0A
+%0A
     
+@Override%0A    protected Collection%3CProperty%3E startupConfigProperties() %7B%0A        // Set no limit on maximum serialized AIS size%0A        return Collections.singleton(new Property(PersistitStoreSchemaManager.MAX_AIS_SIZE_PROPERTY, %220%22));%0A    %7D%0A
 %0A    @Te

Use new property to remove max on serialized size to continue testing with 2k tables.