com.torodb.integration.mongo.v3m0.jstests.CoreIT.java Source code

Java tutorial

Introduction

Here is the source code for com.torodb.integration.mongo.v3m0.jstests.CoreIT.java

Source

/*
 *     This file is part of ToroDB.
 *
 *     ToroDB is free software: you can redistribute it and/or modify
 *     it under the terms of the GNU Affero General Public License as published by
 *     the Free Software Foundation, either version 3 of the License, or
 *     (at your option) any later version.
 *
 *     ToroDB 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 ToroDB. If not, see <http://www.gnu.org/licenses/>.
 *
 *     Copyright (c) 2014, 8Kdata Technology
 *     
 */

package com.torodb.integration.mongo.v3m0.jstests;

import static com.torodb.integration.Backend.Greenplum;
import static com.torodb.integration.Backend.MySQL;
import static com.torodb.integration.Backend.Postgres;
import static com.torodb.integration.Protocol.Mongo;
import static com.torodb.integration.Protocol.MongoReplSet;
import static com.torodb.integration.TestCategory.CATASTROPHIC;
import static com.torodb.integration.TestCategory.FALSE_POSITIVE;
import static com.torodb.integration.TestCategory.IGNORED;
import static com.torodb.integration.TestCategory.NOT_IMPLEMENTED;
import static com.torodb.integration.TestCategory.WORKING;

import java.net.URL;
import java.util.Collection;
import java.util.LinkedHashSet;
import java.util.Set;

import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.google.common.collect.Iterables;
import com.google.common.collect.Sets;
import com.torodb.integration.mongo.v3m0.jstests.ScriptClassifier.Builder;

@RunWith(Parameterized.class)
public class CoreIT extends AbstractIntegrationTest {
    private static final Logger LOGGER = LoggerFactory.getLogger(CoreIT.class);

    public CoreIT() {
        super(LOGGER);
    }

    @Parameters(name = "{0}-{1}")
    public static Collection<Object[]> parameters() {
        return parameters(createScriptClassifier());
    }

    private static ScriptClassifier createScriptClassifier() {
        Set<Script> workingSet = getWorkingSet(), noArraysWorkingSet = getNoArraysWorkingSet(),
                greenplumWorkingSet = getGreenplumWorkingSet(), catastrophicSet = getCatastrophicSet(),
                greenplumCatastrophicSet = Sets
                        .newLinkedHashSet(Iterables.concat(getCatastrophicSet(), getGreenplumCatastrophicSet())),
                falsePositiveSet = getFalsePositiveSet(), notImplementedSet = getNotImplementedSet(),
                noArraysNotImplemented = getNoArraysNotImplementedSet(), ignoredSet = getIgnoredSet(),
                allSet = Sets.newLinkedHashSet(Iterables.concat(workingSet, catastrophicSet, falsePositiveSet,
                        notImplementedSet, ignoredSet));
        return new Builder().addScripts(Mongo, Postgres, WORKING, workingSet)
                .addScripts(Mongo, Postgres, NOT_IMPLEMENTED, notImplementedSet)
                .addScripts(Mongo, Postgres, FALSE_POSITIVE, falsePositiveSet)
                .addScripts(Mongo, Postgres, CATASTROPHIC, catastrophicSet)
                .addScripts(Mongo, Postgres, IGNORED, ignoredSet)

                .addScripts(Mongo, MySQL, WORKING, noArraysWorkingSet)
                .addScripts(Mongo, MySQL, NOT_IMPLEMENTED, noArraysNotImplemented)
                .addScripts(Mongo, MySQL, FALSE_POSITIVE, falsePositiveSet)
                .addScripts(Mongo, MySQL, CATASTROPHIC, catastrophicSet)
                .addScripts(Mongo, MySQL, IGNORED, ignoredSet)

                .addScripts(Mongo, Greenplum, WORKING, greenplumWorkingSet)
                .addScripts(Mongo, Greenplum, NOT_IMPLEMENTED, noArraysNotImplemented)
                .addScripts(Mongo, Greenplum, FALSE_POSITIVE, falsePositiveSet)
                .addScripts(Mongo, Greenplum, CATASTROPHIC, greenplumCatastrophicSet)
                .addScripts(Mongo, Greenplum, IGNORED, ignoredSet)

                .addScripts(MongoReplSet, Postgres, CATASTROPHIC, allSet)
                .addScripts(MongoReplSet, Greenplum, CATASTROPHIC, allSet)
                .addScripts(MongoReplSet, MySQL, CATASTROPHIC, allSet)

                .build();
    }

    private static Set<Script> asScriptSet(String[] scriptNames) {
        Set<Script> result = new LinkedHashSet<>(scriptNames.length);
        for (String scriptName : scriptNames) {
            String relativePath = "core/" + scriptName;
            result.add(new Script(relativePath, createURL(relativePath)));
        }

        return result;
    }

    private static URL createURL(String relativePath) {
        return ToolIT.class.getResource(relativePath);
    }

    private static final Set<Script> getWorkingSet() {
        return asScriptSet(new String[] { "andor.js", "array3.js", "autoid.js", "basic4.js", "basic5.js",
                "basic7.js", "basic8.js", "basic9.js", "basicb.js", "batch_write_command_wc.js", "binData.js",
                "block_check_supported.js", "bulk_insert.js", "capped9.js", "collection_info_cache_race.js",
                "connection_string_validation.js", "count.js", "count9.js", "coveredIndex3.js", "date1.js", "db.js",
                "dbref2.js", "error5.js", "eval8.js", "fm1.js", "fm2.js", "hint1.js", "in2.js", "inc1.js",
                "index6.js", "indexs.js", "insert1.js", "ismaster.js", "json1.js", "map1.js", "null_field_name.js",
                "numberlong.js", "numberlong3.js", "numberlong4.js", "objid1.js", "objid2.js", "objid4.js",
                "objid6.js", "objid7.js", "orb.js", "ore.js", "org.js", "orl.js", "orp.js", "queryoptimizer6.js",
                "ref2.js", "ref3.js", "regex_util.js", "regexa.js", "regexb.js", "remove_justone.js",
                "remove_undefined.js", "remove3.js", "removea.js", "run_program1.js", "set2.js", "shell1.js",
                "shellkillop.js", "shellstartparallel.js", "shelltypes.js", "showdiskloc.js", "stages_sort.js",
                "sub1.js", "update_addToSet2.js", "update2.js", "updatek.js", });
    }

    private static final Set<Script> getNoArraysWorkingSet() {
        return asScriptSet(new String[] { "autoid.js", "basic4.js", "basic5.js", "basic7.js", "basic8.js",
                "basic9.js", "basicb.js", "batch_write_command_wc.js", "binData.js", "block_check_supported.js",
                "bulk_insert.js", "collection_info_cache_race.js", "connection_string_validation.js", "count.js",
                "coveredIndex3.js", "db.js", "dbref2.js", "error5.js", "eval8.js", "fm1.js", "fm2.js", "hint1.js",
                "in2.js", "inc1.js", "index6.js", "insert1.js", "ismaster.js", "json1.js", "map1.js",
                "null_field_name.js", "numberlong.js", "numberlong3.js", "numberlong4.js", "objid1.js", "objid2.js",
                "objid4.js", "objid6.js", "objid7.js", "orb.js", "ore.js", "orl.js", "orp.js", "queryoptimizer6.js",
                "ref2.js", "ref3.js", "remove_undefined.js", "remove3.js", "regex_util.js", "regexa.js",
                "regexb.js", "removea.js", "run_program1.js", "set2.js", "shell1.js", "shellkillop.js",
                "shellstartparallel.js", "shelltypes.js", "showdiskloc.js", "stages_sort.js", "sub1.js",
                "update2.js", "updatek.js", });
    }

    private static final Set<Script> getCatastrophicSet() {
        return asScriptSet(new String[] { "all.js", "all2.js", "all3.js", "all4.js", "all5.js", "and.js", "and2.js",
                "and3.js", "arrayfind1.js", "arrayfind3.js", "array_match1.js", "basic1.js", "basic3.js",
                "big_object1.js", "count3.js", "count4.js", "cursor1.js", "cursor2.js", "exists2.js", "indexe.js",
                "ord.js", "regex8.js", "unset.js", "update_replace.js", });
    }

    private static final Set<Script> getFalsePositiveSet() {
        return asScriptSet(new String[] { "depth_limit.js", "exists3.js", "group_empty.js", "in5.js", "removeb.js",
                "removec.js", "server14753.js", "sort7.js", "testminmax.js", "update_arraymatch5.js", "where2.js",
                "where5.js", });
    }

    private static final Set<Script> getNoArraysNotImplementedSet() {
        return Sets.newHashSet(Iterables.concat(getNotImplementedSet(), asScriptSet(new String[] { "andor.js",
                "capped9.js", "indexs.js", "org.js", "remove_justone.js", "update_addToSet2.js", })));
    }

    private static final Set<Script> getGreenplumCatastrophicSet() {
        return asScriptSet(new String[] { "in2.js", "orp.js", "removea.js", });
    }

    private static final Set<Script> getGreenplumWorkingSet() {
        return asScriptSet(new String[] { "autoid.js", "basic4.js", "basic5.js", "basic7.js", "basic8.js",
                "basic9.js", "basicb.js", "batch_write_command_wc.js", "binData.js", "block_check_supported.js",
                "bulk_insert.js", "collection_info_cache_race.js", "connection_string_validation.js", "count.js",
                "coveredIndex3.js", "db.js", "dbref2.js", "error5.js", "eval8.js", "fm1.js", "fm2.js", "hint1.js",
                "inc1.js", "index6.js", "insert1.js", "ismaster.js", "json1.js", "map1.js", "null_field_name.js",
                "numberlong.js", "numberlong3.js", "numberlong4.js", "objid1.js", "objid2.js", "objid4.js",
                "objid6.js", "objid7.js", "orb.js", "ore.js", "orl.js", "queryoptimizer6.js", "ref2.js", "ref3.js",
                "remove_undefined.js", "remove3.js", "regex_util.js", "regexa.js", "regexb.js", "run_program1.js",
                "set2.js", "shell1.js", "shellkillop.js", "shellstartparallel.js", "shelltypes.js",
                "showdiskloc.js", "stages_sort.js", "sub1.js", "update2.js", "updatek.js", });
    }

    private static final Set<Script> getNotImplementedSet() {
        return asScriptSet(new String[] { "apitest_db.js", "apitest_dbcollection.js", "apply_ops1.js",
                "apply_ops2.js", "array_match2.js", "array_match3.js", "array_match4.js", "array1.js", "array4.js",
                "arrayfind2.js", "arrayfind5.js", "arrayfind4.js", "arrayfind6.js", "arrayfind7.js",
                "arrayfind8.js", "arrayfind9.js", "arrayfinda.js", "arrayfindb.js", "auth_copydb.js", "auth1.js",
                "auth2.js", "autoid.js", "bad_index_plugin.js", "basic2.js", "basic4.js", "basic6.js", "basic8.js",
                "basica.js", "batch_size.js", "batch_write_command_delete.js", "batch_write_command_insert.js",
                "batch_write_command_update.js", "bindata_indexonly.js", "bulk_api_ordered.js",
                "bulk_api_unordered.js", "bulk_legacy_enforce_gle.js", "capped_convertToCapped1.js",
                "capped_empty.js", "capped_max1.js", "capped.js", "capped1.js", "capped5.js", "capped6.js",
                "cappeda.js", "check_shard_index.js", "cleanup_orphaned.js", "clone_as_capped_nonexistant.js",
                "collection_info_cache_race.js", "collection_truncate.js", "collmod.js", "compact_keeps_indexes.js",
                "connection_status.js", "constructors.js", "convert_to_capped_nonexistant.js", "copydb.js",
                "count_hint.js", "count_plan_summary.js", "count10.js", "count11.js", "count2.js", "count5.js",
                "count6.js", "count7.js", "count9.js", "counta.js", "countb.js", "countc.js",
                "covered_index_compound_1.js", "covered_index_negative_1.js", "covered_index_simple_1.js",
                "covered_index_simple_2.js", "covered_index_simple_3.js", "covered_index_simple_id.js",
                "covered_index_sort_1.js", "covered_index_sort_2.js", "covered_index_sort_3.js", "coveredIndex1.js",
                "coveredIndex2.js", "coveredIndex4.js", "create_collection_fail_cleanup.js", "create_indexes.js",
                "currentop.js", "cursor3.js", "cursor4.js", "cursor5.js", "cursor6.js", "cursor7.js", "cursora.js",
                "cursorb.js", "datasize2.js", "date1.js", "date2.js", "date3.js", "dbadmin.js", "dbcase.js",
                "dbcase2.js", "dbhash.js", "dbhash2.js", "dbref1.js", "dbref3.js", "delx.js", "distinct_array1.js",
                "distinct_index1.js", "distinct_index2.js", "distinct_speed1.js", "distinct1.js", "distinct2.js",
                "distinct3.js", "distinct4.js", "drop_index.js", "drop.js", "drop2.js", "drop3.js",
                "dropdb_race.js", "dropdb.js", "elemMatchProjection.js", "error2.js", "eval_mr.js",
                "eval_nolock.js", "eval0.js", "eval1.js", "eval2.js", "eval3.js", "eval4.js", "eval5.js",
                "eval6.js", "eval7.js", "eval8.js", "eval9.js", "evala.js", "evalb.js", "evalc.js", "evald.js",
                "evale.js", "evalf.js", "evalg.js", "exists.js", "exists4.js", "exists5.js", "exists6.js",
                "exists7.js", "exists8.js", "exists9.js", "existsa.js", "existsb.js", "explain_batch_size.js",
                "explain_count.js", "explain_delete.js", "explain_execution_error.js", "explain_find.js",
                "explain_large_bounds.js", "explain_null_collection.js", "explain_shell_helpers.js",
                "explain_upsert.js", "explain1.js", "explain2.js", "explain3.js", "explain4.js", "explain5.js",
                "explain6.js", "filemd5.js", "find_and_modify_concurrent_update.js",
                "find_and_modify_empty_update.js", "find_and_modify_server6226.js", "find_and_modify_server6254.js",
                "find_and_modify_server6582.js", "find_and_modify_server6588.js", "find_and_modify_server6659.js",
                "find_and_modify_server6909.js", "find_and_modify_server6993.js", "find_and_modify_server7660.js",
                "find_and_modify_where.js", "find_and_modify.js", "find_and_modify2.js", "find_and_modify3.js",
                "find_and_modify4.js", "find_dedup.js", "find_size.js", "find1.js", "find2.js", "find3.js",
                "find4.js", "find5.js", "find6.js", "find7.js", "find8.js", "find9.js", "finda.js", "fm3.js",
                "fm4.js", "fsync.js", "fts_blog.js", "fts_blogwild.js", "fts_enabled.js", "fts_explain.js",
                "fts_index_version1.js", "fts_index.js", "fts_index2.js", "fts_index3.js", "fts_mix.js",
                "fts_partition_no_multikey.js", "fts_partition1.js", "fts_phrase.js", "fts_proj.js",
                "fts_projection.js", "fts_querylang.js", "fts_score_sort.js", "fts_spanish.js", "fts1.js",
                "fts2.js", "fts3.js", "fts4.js", "fts5.js", "fts6.js", "geo_2d_explain.js",
                "geo_2d_with_geojson_point.js", "geo_allowedcomparisons.js", "geo_array0.js", "geo_array1.js",
                "geo_array2.js", "geo_big_polygon.js", "geo_big_polygon2.js", "geo_big_polygon3.js",
                "geo_borders.js", "geo_box1.js", "geo_box1_noindex.js", "geo_box2.js", "geo_box3.js",
                "geo_center_sphere1.js", "geo_center_sphere2.js", "geo_circle1_noindex.js", "geo_circle1.js",
                "geo_circle2.js", "geo_circle2a.js", "geo_circle3.js", "geo_circle4.js", "geo_circle5.js",
                "geo_distinct.js", "geo_exactfetch.js", "geo_fiddly_box.js", "geo_fiddly_box2.js", "geo_group.js",
                "geo_haystack1.js", "geo_haystack2.js", "geo_haystack3.js", "geo_invalid_2d_params.js",
                "geo_invalid_polygon.js", "geo_mapreduce.js", "geo_mapreduce2.js", "geo_max.js",
                "geo_mindistance_boundaries.js", "geo_mindistance.js", "geo_multikey0.js", "geo_multikey1.js",
                "geo_multinest0.js", "geo_multinest1.js", "geo_near_random1.js", "geo_near_random2.js",
                "geo_nearwithin.js", "geo_oob_sphere.js", "geo_operator_crs.js", "geo_or.js", "geo_poly_edge.js",
                "geo_poly_line.js", "geo_polygon1_noindex.js", "geo_polygon1.js", "geo_polygon2.js",
                "geo_polygon3.js", "geo_queryoptimizer.js", "geo_regex0.js", "geo_s2cursorlimitskip.js",
                "geo_s2dedupnear.js", "geo_s2descindex.js", "geo_s2disjoint_holes.js", "geo_s2dupe_points.js",
                "geo_s2holesameasshell.js", "geo_s2index.js", "geo_s2indexoldformat.js", "geo_s2indexversion1.js",
                "geo_s2intersection.js", "geo_s2edgecases.js", "geo_s2exact.js", "geo_s2largewithin.js",
                "geo_s2meridian.js", "geo_s2multi.js", "geo_s2nearComplex.js", "geo_s2nearcorrect.js",
                "geo_s2near_equator_opposite.js", "geo_s2near.js", "geo_s2nearwithin.js", "geo_s2nongeoarray.js",
                "geo_s2nonstring.js", "geo_s2nopoints.js", "geo_s2oddshapes.js", "geo_s2ordering.js",
                "geo_s2overlappingpolys.js", "geo_s2polywithholes.js", "geo_s2selfintersectingpoly.js",
                "geo_s2sparse.js", "geo_s2twofields.js", "geo_s2validindex.js", "geo_s2within.js",
                "geo_small_large.js", "geo_sort1.js", "geo_uniqueDocs.js", "geo_uniqueDocs2.js",
                "geo_update_btree.js", "geo_update_btree2.js", "geo_update_dedup.js", "geo_update.js",
                "geo_update1.js", "geo_update2.js", "geo_validate.js", "geo_withinquery.js", "geo1.js", "geo10.js",
                "geo2.js", "geo3.js", "geo5.js", "geo6.js", "geo7.js", "geo8.js", "geo9.js", "geoa.js", "geob.js",
                "geoc.js", "geod.js", "geoe.js", "geof.js", "geonear_cmd_input_validation.js", "getlog1.js",
                "getlog2.js", "getmore_invalidation.js", "group1.js", "group2.js", "group3.js", "group4.js",
                "group5.js", "group6.js", "group7.js", "group8.js", "grow_hash_table.js", "hashindex1.js",
                "hashtest1.js", "hint1.js", "hostinfo.js", "id1.js", "idhack.js", "in.js", "in3.js", "in4.js",
                "in6.js", "in7.js", "in8.js", "inc-SERVER-7446.js", "inc1.js", "inc2.js", "inc3.js",
                "index_arr1.js", "index_arr2.js", "index_big1.js", "index_bigkeys_nofail.js",
                "index_bigkeys_update.js", "index_bigkeys.js", "index_bounds_number_edge_cases.js",
                "index_check2.js", "index_check3.js", "index_check5.js", "index_check6.js", "index_check7.js",
                "index_create_too_many.js", "index_create_with_nul_in_name.js", "index_diag.js",
                "index_dropdups_ignore.js", "index_elemmatch1.js", "index_filter_commands.js", "index_id_desc.js",
                "index_id_unique.js", "index_many.js", "index_many2.js", "index_plugins.js", "index_sparse1.js",
                "index_sparse2.js", "index1.js", "index13.js", "index2.js", "index3.js", "index4.js", "index5.js",
                "index7.js", "index8.js", "index9.js", "indexa.js", "indexapi.js", "indexb.js", "indexc.js",
                "indexd.js", "indexes_on_indexes.js", "indexf.js", "indexg.js", "indexj.js", "indexl.js",
                "indexm.js", "indexn.js", "indexOtherNamespace.js", "indexp.js", "indexr.js",
                "indexStatsCommand.js", "indext.js", "indexu.js", "indexv.js", "insert_id_undefined.js",
                "insert_illegal_doc.js", "insert_long_index_key.js", "insert1.js", "insert2.js", "js1.js", "js2.js",
                "js3.js", "js4.js", "js5.js", "js7.js", "js8.js", "js9.js", "killop.js", "list_collections1.js",
                "list_indexes1.js", "loadserverscripts.js", "loglong.js", "logprocessdetails.js",
                "long_index_rename.js", "max_doc_size.js", "max_time_ms.js", "maxscan.js", "minmax.js", "mod1.js",
                "mr_bigobject.js", "mr_comments.js", "mr_errorhandling.js", "mr_index.js", "mr_index2.js",
                "mr_index3.js", "mr_killop.js", "mr_merge.js", "mr_merge2.js", "mr_mutable_properties.js",
                "mr_optim.js", "mr_outreduce.js", "mr_outreduce2.js", "mr_replaceIntoDB.js", "mr_sort.js",
                "mr_stored.js", "mr_undef.js", "mr1.js", "mr2.js", "mr3.js", "mr4.js", "mr5.js", "multi.js",
                "multi2.js", "multikey_geonear.js", "nan.js", "natural.js", "ne1.js", "ne2.js", "ne3.js",
                "nestedarr1.js", "nestedobj1.js", "nin.js", "nin2.js", "no_db_created.js", "not1.js", "not2.js",
                "not3.js", "notablescan.js", "ns_length.js", "null.js", "null2.js", "numberint.js",
                "numberlong2.js", "numberlong3.js", "objid2.js", "objid3.js", "objid5.js", "opcounters_active.js",
                "opcounters_write_cmd.js", "or_inexact.js", "or1.js", "or2.js", "or3.js", "or4.js", "or5.js",
                "or6.js", "or7.js", "or8.js", "or9.js", "ora.js", "orc.js", "orf.js", "orh.js", "orj.js", "ork.js",
                "oro.js", "plan_cache_clear.js", "plan_cache_list_plans.js", "plan_cache_list_shapes.js",
                "plan_cache_shell_helpers.js", "plan_cache_ties.js", "pop_server_13516.js", "profile_no_such_db.js",
                "profile1.js", "profile2.js", "profile3.js", "profile4.js", "profile5.js", "proj_key1.js",
                "pull_or.js", "pull_remove1.js", "pull.js", "pull2.js", "pullall.js", "pullall2.js", "push_sort.js",
                "push.js", "push2.js", "pushall.js", "query1.js", "queryoptimizer3.js", "queryoptimizera.js",
                "ref.js", "ref3.js", "ref4.js", "regex_embed1.js", "regex_limit.js", "regex_not_id.js",
                "regex_options.js", "regex.js", "regex2.js", "regex3.js", "regex4.js", "regex5.js", "regex6.js",
                "regex7.js", "regex9.js", "regexc.js", "remove_undefined.js", "remove.js", "remove2.js",
                "remove3.js", "remove4.js", "remove6.js", "remove7.js", "remove8.js", "remove9.js",
                "rename_stayTemp.js", "rename.js", "rename2.js", "rename3.js", "rename4.js", "rename5.js",
                "rename6.js", "rename7.js", "rename8.js", "repair_database.js", "repair_server12955.js",
                "role_management_helpers.js", "server1470.js", "server14747.js", "server5346.js", "server7756.js",
                "server9385.js", "server9547.js", "set_param1.js", "set1.js", "set2.js", "set3.js", "set4.js",
                "set5.js", "set6.js", "set7.js", "shell_writeconcern.js", "shell1.js", "showdiskloc.js", "skip1.js",
                "slice1.js", "sort_numeric.js", "sort1.js", "sort10.js", "sort2.js", "sort3.js", "sort4.js",
                "sort5.js", "sort6.js", "sort8.js", "sort9.js", "sorta.js", "sortb.js", "sortc.js", "sortd.js",
                "sortf.js", "sortg.js", "sorth.js", "sorti.js", "sortj.js", "sortk.js", "splitvector.js",
                "stages_and_hash.js", "stages_and_sorted.js", "stages_collection_scan.js", "stages_delete.js",
                "stages_fetch.js", "stages_ixscan.js", "stages_limit_skip.js", "stages_mergesort.js",
                "stages_or.js", "stages_text.js", "storageDetailsCommand.js", "storefunc.js",
                "string_with_nul_bytes.js", "system_profile.js", "tailable_skip_limit.js", "temp_cleanup.js",
                "test_command_line_test_helpers.js", "top.js", "ts1.js", "type1.js", "type2.js", "type3.js",
                "uniqueness.js", "unset2.js", "update_addToSet.js", "update_addToSet3.js", "update_arraymatch1.js",
                "update_arraymatch2.js", "update_arraymatch3.js", "update_arraymatch4.js", "update_arraymatch6.js",
                "update_arraymatch7.js", "update_arraymatch8.js", "update_bit_examples.js", "update_blank1.js",
                "update_currentdate_examples.js", "update_dbref.js", "update_find_and_modify_id.js",
                "update_invalid1.js", "update_min_max_examples.js", "update_mul_examples.js", "update_multi3.js",
                "update_multi4.js", "update_multi5.js", "update_multi6.js", "update_server-12848.js",
                "update_setOnInsert.js", "update2.js", "update3.js", "update5.js", "update6.js", "update7.js",
                "update8.js", "update9.js", "updatea.js", "updateb.js", "updatec.js", "updated.js", "updatee.js",
                "updatef.js", "updateg.js", "updateh.js", "updatei.js", "updatej.js", "updatek.js", "updatel.js",
                "updatem.js", "upsert_and.js", "upsert_fields.js", "upsert_shell.js", "useindexonobjgtlt.js",
                "user_management_helpers.js", "validate_cmd_ns.js", "validate_user_documents.js",
                "verify_update_mods.js", "where1.js", "where3.js", "where4.js", "write_result.js", });
    }

    private static final Set<Script> getIgnoredSet() {
        return asScriptSet(new String[] { "array3.js", "bench_test_insert.js", "bench_test1.js", "bench_test2.js",
                "bench_test3.js", });
    }
}