diff --git a/tests/fixtures.py b/tests/fixtures.py index dee13889..a6673d56 100644 --- a/tests/fixtures.py +++ b/tests/fixtures.py @@ -80,16 +80,6 @@ def get_viv_extractor(path): return capa.features.extractors.viv.VivisectFeatureExtractor(vw, path) -@lru_cache -def get_lancelot_extractor(path): - import capa.features.extractors.lancelot - - with open(path, "rb") as f: - buf = f.read() - - return capa.features.extractors.lancelot.LancelotFeatureExtractor(buf) - - @lru_cache() def extract_file_features(extractor): features = collections.defaultdict(set) @@ -437,7 +427,7 @@ def do_test_feature_count(get_extractor, sample, scope, feature, expected): def get_extractor(path): if sys.version_info >= (3, 0): - extractor = get_lancelot_extractor(path) + raise RuntimeError("no supported py3 backends yet") else: extractor = get_viv_extractor(path) diff --git a/tests/test_freeze.py b/tests/test_freeze.py index cbd31ad4..1cc4e27a 100644 --- a/tests/test_freeze.py +++ b/tests/test_freeze.py @@ -5,7 +5,9 @@ # 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. +import sys +import pytest import textwrap from fixtures import * @@ -163,6 +165,7 @@ def test_serialize_features(): roundtrip_feature(capa.features.file.Import("#11")) +@pytest.mark.xfail(sys.version_info >= (3, 0), reason="vivsect only works on py2") def test_freeze_sample(tmpdir, z9324d_extractor): # tmpdir fixture handles cleanup o = tmpdir.mkdir("capa").join("test.frz").strpath @@ -170,6 +173,7 @@ def test_freeze_sample(tmpdir, z9324d_extractor): assert capa.features.freeze.main([path, o, "-v"]) == 0 +@pytest.mark.xfail(sys.version_info >= (3, 0), reason="vivsect only works on py2") def test_freeze_load_sample(tmpdir, z9324d_extractor): o = tmpdir.mkdir("capa").join("test.frz") diff --git a/tests/test_main.py b/tests/test_main.py index 9125c123..f1b48b2e 100644 --- a/tests/test_main.py +++ b/tests/test_main.py @@ -5,18 +5,20 @@ # 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. +import sys +import pytest import textwrap -from fixtures import * - import capa.main import capa.rules import capa.engine import capa.features from capa.engine import * +from fixtures import * +@pytest.mark.xfail(sys.version_info >= (3, 0), reason="vivsect only works on py2") def test_main(z9324d_extractor): # tests rules can be loaded successfully and all output modes path = z9324d_extractor.path @@ -26,6 +28,7 @@ def test_main(z9324d_extractor): assert capa.main.main([path]) == 0 +@pytest.mark.xfail(sys.version_info >= (3, 0), reason="vivsect only works on py2") def test_main_single_rule(z9324d_extractor, tmpdir): # tests a single rule can be loaded successfully RULE_CONTENT = textwrap.dedent( @@ -44,6 +47,7 @@ def test_main_single_rule(z9324d_extractor, tmpdir): assert capa.main.main([path, "-v", "-r", rule_file.strpath,]) == 0 +@pytest.mark.xfail(sys.version_info >= (3, 0), reason="vivsect only works on py2") def test_main_shellcode(z499c2_extractor): path = z499c2_extractor.path assert capa.main.main([path, "-vv", "-f", "sc32"]) == 0 @@ -98,6 +102,7 @@ def test_ruleset(): assert len(rules.basic_block_rules) == 1 +@pytest.mark.xfail(sys.version_info >= (3, 0), reason="vivsect only works on py2") def test_match_across_scopes_file_function(z9324d_extractor): rules = capa.rules.RuleSet( [ @@ -161,6 +166,7 @@ def test_match_across_scopes_file_function(z9324d_extractor): assert ".text section and install service" in capabilities +@pytest.mark.xfail(sys.version_info >= (3, 0), reason="vivsect only works on py2") def test_match_across_scopes(z9324d_extractor): rules = capa.rules.RuleSet( [ @@ -223,6 +229,7 @@ def test_match_across_scopes(z9324d_extractor): assert "kill thread program" in capabilities +@pytest.mark.xfail(sys.version_info >= (3, 0), reason="vivsect only works on py2") def test_subscope_bb_rules(z9324d_extractor): rules = capa.rules.RuleSet( [ @@ -247,6 +254,7 @@ def test_subscope_bb_rules(z9324d_extractor): assert "test rule" in capabilities +@pytest.mark.xfail(sys.version_info >= (3, 0), reason="vivsect only works on py2") def test_byte_matching(z9324d_extractor): rules = capa.rules.RuleSet( [ @@ -269,6 +277,7 @@ def test_byte_matching(z9324d_extractor): assert "byte match test" in capabilities +@pytest.mark.xfail(sys.version_info >= (3, 0), reason="vivsect only works on py2") def test_count_bb(z9324d_extractor): rules = capa.rules.RuleSet( [