Пример #1
0
    def test_cpp_expand_roots(self):
        config = {"root": "integrationtest.txt", "roots": ["build/test*"]}
        selected, excluded = selector.filter_tests("cpp_integration_test", config, self.test_file_explorer)
        self.assertEqual(["build/testA", "build/testB", "build/testC"], selected)
        self.assertEqual([], excluded)

        selected, excluded = selector.filter_tests("cpp_unit_test", config, self.test_file_explorer)
        self.assertEqual(["build/testA", "build/testB", "build/testC"], selected)
        self.assertEqual([], excluded)
Пример #2
0
 def test_cpp_roots_override(self):
     # When roots are specified for cpp tests they override all filtering since
     # 'roots' are populated with the command line arguments.
     config = {"include_files": "unknown_file", "roots": ["build/testC"]}
     selected = selector.filter_tests("cpp_unit_test", config,
                                      self.test_file_explorer)
     self.assertEqual(["build/testC"], selected)
     selected = selector.filter_tests("cpp_integration_test", config,
                                      self.test_file_explorer)
     self.assertEqual(["build/testC"], selected)
    def test_cpp_expand_roots(self):
        config = {"root": "integrationtest.txt", "roots": ["build/test*"]}
        selected, excluded = selector.filter_tests("cpp_integration_test", config,
                                                   self.test_file_explorer)
        self.assertEqual(["build/testA", "build/testB", "build/testC"], selected)
        self.assertEqual([], excluded)

        selected, excluded = selector.filter_tests("cpp_unit_test", config, self.test_file_explorer)
        self.assertEqual(["build/testA", "build/testB", "build/testC"], selected)
        self.assertEqual([], excluded)
Пример #4
0
 def test_cpp_roots_override(self):
     # When roots are specified for cpp tests they override all filtering since
     # 'roots' are populated with the command line arguments.
     config = {"include_files": "unknown_file", "roots": ["build/testC"]}
     selected, excluded = selector.filter_tests("cpp_unit_test", config, self.test_file_explorer)
     self.assertEqual(["build/testC"], selected)
     self.assertEqual([], excluded)
     selected, excluded = selector.filter_tests("cpp_integration_test", config,
                                                self.test_file_explorer)
     self.assertEqual(["build/testC"], selected)
     self.assertEqual([], excluded)
 def test_jstest_include_with_any_tags(self):
     config = {
         "roots": ["dir/subdir1/*.js", "dir/subdir2/*.js", "dir/subdir3/a/*.js"],
         "include_with_any_tags": ["tag2"]
     }
     selected, excluded = selector.filter_tests("js_test", config, self.test_file_explorer)
     self.assertEqual(["dir/subdir1/test11.js", "dir/subdir2/test21.js"], selected)
     self.assertEqual(["dir/subdir1/test12.js", "dir/subdir3/a/test3a1.js"], excluded)
Пример #6
0
 def test_db_tests_include_suites(self):
     config = {
         "binary": self.test_file_explorer.binary,
         "include_suites": ["dbtestB"]
     }
     selected = selector.filter_tests("db_test", config,
                                      self.test_file_explorer)
     self.assertEqual(["dbtestB"], selected)
Пример #7
0
def get_tests_with_feature_flag_tags(feature_flags, ent_path):
    """Get the list of tests with feature flag tag."""
    selector_config = {
        "roots": ["jstests/**/*.js", f"{ent_path}/jstests/**/*.js"],
        "include_with_any_tags": feature_flags,
    }
    tests, _ = selector.filter_tests("js_test", selector_config)
    return tests
Пример #8
0
 def test_json_shcema_include_files(self):
     config = {"roots": ["dir/subdir1/*.js", "dir/subdir2/*.js", "dir/subdir3/a/*.js"],
               "include_files": ["dir/subdir2/test21.js"]}
     selected, excluded = selector.filter_tests("json_schema_test", config, self.test_file_explorer)
     self.assertEqual(["dir/subdir2/test21.js"], selected)
     self.assertEqual(["dir/subdir1/test11.js",
                       "dir/subdir1/test12.js",
                       "dir/subdir3/a/test3a1.js"], excluded)
Пример #9
0
 def test_jstest_include_with_any_tags(self):
     config = {
         "roots": ["dir/subdir1/*.js", "dir/subdir2/*.js", "dir/subdir3/a/*.js"],
         "include_with_any_tags": ["tag2"]
     }
     selected, excluded = selector.filter_tests("js_test", config, self.test_file_explorer)
     self.assertEqual(["dir/subdir1/test11.js", "dir/subdir2/test21.js"], selected)
     self.assertEqual(["dir/subdir1/test12.js", "dir/subdir3/a/test3a1.js"], excluded)
Пример #10
0
 def test_db_tests_roots_override(self):
     # When roots are specified for db_tests they override all filtering since
     # 'roots' are populated with the command line arguments.
     config = {"binary": self.test_file_explorer.binary,
               "include_suites": ["dbtestB"],
               "roots": ["dbtestOverride"]}
     selected, excluded = selector.filter_tests("db_test", config, self.test_file_explorer)
     self.assertEqual(["dbtestOverride"], selected)
     self.assertEqual([], excluded)
Пример #11
0
 def test_jstest_include_tags(self):
     config = {
         "roots":
         ["dir/subdir1/*.js", "dir/subdir2/*.js", "dir/subdir3/a/*.js"],
         "include_tags": "tag1"
     }
     selected = selector.filter_tests("js_test", config,
                                      self.test_file_explorer)
     self.assertEqual(["dir/subdir1/test11.js"], selected)
Пример #12
0
 def test_json_shcema_include_files(self):
     config = {
         "roots":
         ["dir/subdir1/*.js", "dir/subdir2/*.js", "dir/subdir3/a/*.js"],
         "include_files": ["dir/subdir2/test21.js"]
     }
     selected = selector.filter_tests("json_schema_test", config,
                                      self.test_file_explorer)
     self.assertEqual(["dir/subdir2/test21.js"], selected)
Пример #13
0
 def test_cpp_with_any_tags(self):
     buildscripts.resmokelib.config.INCLUDE_WITH_ANY_TAGS = ["tag1"]
     try:
         selector_config = {"root": "unittest.txt"}
         selected, excluded = selector.filter_tests("cpp_unit_test", selector_config,
                                                    test_file_explorer=self.test_file_explorer)
         self.assertEqual([], selected)
         self.assertEqual(["build/testA", "build/testB"], excluded)
     finally:
         buildscripts.resmokelib.config.INCLUDE_WITH_ANY_TAGS = None
 def test_cpp_with_any_tags(self):
     buildscripts.resmokelib.config.INCLUDE_WITH_ANY_TAGS = ["tag1"]
     try:
         selector_config = {"root": "unittest.txt"}
         selected, excluded = selector.filter_tests("cpp_unit_test", selector_config,
                                                    test_file_explorer=self.test_file_explorer)
         self.assertEqual([], selected)
         self.assertEqual(["build/testA", "build/testB"], excluded)
     finally:
         buildscripts.resmokelib.config.INCLUDE_WITH_ANY_TAGS = None
 def test_db_tests_roots_override(self):
     # When roots are specified for db_tests they override all filtering since
     # 'roots' are populated with the command line arguments.
     config = {
         "binary": self.test_file_explorer.binary, "include_suites": ["dbtestB"],
         "roots": ["dbtestOverride"]
     }
     selected, excluded = selector.filter_tests("db_test", config, self.test_file_explorer)
     self.assertEqual(["dbtestOverride"], selected)
     self.assertEqual([], excluded)
Пример #16
0
 def test_filter_temporarily_disabled_tests(self):
     parser.parse_command_line()
     test_file_explorer = MockTestFileExplorer()
     test_file_explorer.tags = {
         "dir/subdir1/test11.js": ["tag1", "tag2", "__TEMPORARILY_DISABLED__"],
         "dir/subdir1/test12.js": ["tag3"], "dir/subdir2/test21.js": ["tag2", "tag4"]
     }
     config = {"roots": ["dir/subdir1/*.js", "dir/subdir2/*.js"]}
     selected, excluded = selector.filter_tests("js_test", config, test_file_explorer)
     self.assertEqual(["dir/subdir1/test11.js"], excluded)
     self.assertEqual(["dir/subdir1/test12.js", "dir/subdir2/test21.js"], selected)
 def test_filter_temporarily_disabled_tests(self):
     parser.parse_command_line(sys.argv[1:])
     test_file_explorer = MockTestFileExplorer()
     test_file_explorer.tags = {
         "dir/subdir1/test11.js": ["tag1", "tag2", "__TEMPORARILY_DISABLED__"],
         "dir/subdir1/test12.js": ["tag3"], "dir/subdir2/test21.js": ["tag2", "tag4"]
     }
     config = {"roots": ["dir/subdir1/*.js", "dir/subdir2/*.js"]}
     selected, excluded = selector.filter_tests("js_test", config, test_file_explorer)
     self.assertEqual(["dir/subdir1/test11.js"], excluded)
     self.assertEqual(["dir/subdir1/test12.js", "dir/subdir2/test21.js"], selected)
Пример #18
0
 def test_jstest_all(self):
     config = {
         "roots":
         ["dir/subdir1/*.js", "dir/subdir2/*.js", "dir/subdir3/a/*.js"]
     }
     selected = selector.filter_tests("js_test", config,
                                      self.test_file_explorer)
     self.assertEqual([
         "dir/subdir1/test11.js", "dir/subdir1/test12.js",
         "dir/subdir2/test21.js", "dir/subdir3/a/test3a1.js"
     ], selected)
Пример #19
0
    def _get_tests_for_kind(self, test_kind):
        """Return the tests to run based on the 'test_kind'-specific filtering policy."""
        selector_config = self.get_selector_config()

        # The mongos_test doesn't have to filter anything, the selector_config is just the
        # arguments to the mongos program to be used as the test case.
        if test_kind == "mongos_test":
            mongos_options = selector_config  # Just for easier reading.
            if not isinstance(mongos_options, dict):
                raise TypeError("Expected dictionary of arguments to mongos")
            return [mongos_options], []

        return _selector.filter_tests(test_kind, selector_config)
Пример #20
0
 def test_db_tests_include_suites(self):
     config = {"binary": self.test_file_explorer.binary, "include_suites": ["dbtestB"]}
     selected, excluded = selector.filter_tests("db_test", config, self.test_file_explorer)
     self.assertEqual(["dbtestB"], selected)
     self.assertEqual(["dbtestA", "dbtestC"], excluded)
Пример #21
0
 def test_jstest_unknown_file(self):
     config = {"roots": ["dir/subdir1/*.js", "dir/subdir1/unknown"]}
     with self.assertRaisesRegexp(ValueError, "Unrecognized test file: dir/subdir1/unknown"):
         selector.filter_tests("js_test", config, self.test_file_explorer)
Пример #22
0
 def test_db_tests_all(self):
     config = {"binary": self.test_file_explorer.binary}
     selected, excluded = selector.filter_tests("db_test", config, self.test_file_explorer)
     self.assertEqual(["dbtestA", "dbtestB", "dbtestC"], selected)
     self.assertEqual([], excluded)
Пример #23
0
 def test_cpp_all(self):
     config = {"root": "integrationtest.txt"}
     selected = selector.filter_tests("cpp_integration_test", config,
                                      self.test_file_explorer)
     self.assertEqual(["build/testA", "build/testB"], selected)
Пример #24
0
 def test_unknown_test_kind(self):
     with self.assertRaises(ValueError):
         selector.filter_tests("unknown_test", {})
Пример #25
0
 def test_jstest_unknown_file(self):
     config = {"roots": ["dir/subdir1/*.js", "dir/subdir1/unknown"]}
     with self.assertRaisesRegexp(
             ValueError, "Unrecognized test file: dir/subdir1/unknown"):
         selector.filter_tests("js_test", config, self.test_file_explorer)
Пример #26
0
 def test_db_tests_all(self):
     config = {"binary": self.test_file_explorer.binary}
     selected, excluded = selector.filter_tests("db_test", config,
                                                self.test_file_explorer)
     self.assertEqual(["dbtestA", "dbtestB", "dbtestC"], selected)
     self.assertEqual([], excluded)
Пример #27
0
 def test_unknown_test_kind(self):
     with self.assertRaises(ValueError):
         selector.filter_tests("unknown_test", {})