summaryrefslogtreecommitdiffstats
path: root/tests/test_debputy_plugin.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_debputy_plugin.py')
-rw-r--r--tests/test_debputy_plugin.py136
1 files changed, 136 insertions, 0 deletions
diff --git a/tests/test_debputy_plugin.py b/tests/test_debputy_plugin.py
index dc60597..8a4cc59 100644
--- a/tests/test_debputy_plugin.py
+++ b/tests/test_debputy_plugin.py
@@ -19,6 +19,16 @@ from debputy.plugin.api.test_api import (
from debputy.plugin.api.test_api import manifest_variable_resolution_context
from debputy.plugin.api.test_api.test_impl import initialize_plugin_under_test_preloaded
from debputy.plugin.api.test_api.test_spec import DetectedService
+from debputy.plugin.debputy.build_system_rules import (
+ AutoconfBuildSystemRule,
+ MakefileBuildSystemRule,
+ PerlBuildBuildSystemRule,
+ PerlMakeMakerBuildSystemRule,
+ QmakeBuildSystemRule,
+ Qmake6BuildSystemRule,
+ CMakeBuildSystemRule,
+ MesonBuildSystemRule,
+)
from debputy.plugin.debputy.debputy_plugin import initialize_debputy_features
from debputy.plugin.debputy.private_api import load_libcap
from debputy.plugin.debputy.service_management import SystemdServiceContext
@@ -1252,3 +1262,129 @@ def test_auto_depends_solink() -> None:
context=context_too_many_matches,
)
assert "misc:Depends" not in sodep_metadata.substvars
+
+
+@pytest.mark.parametrize(
+ "filename,expected,mode,content",
+ [
+ ("configure.ac", True, 0o0644, None),
+ ("configure.in", True, 0o0644, "AC_INIT"),
+ ("configure.in", True, 0o0644, "AC_PREREQ"),
+ ("configure.in", False, 0o0644, "None of the above"),
+ ("configure", True, 0o0755, "GNU Autoconf"),
+ ("configure", False, 0o0644, "GNU Autoconf"),
+ ("configure", False, 0o0755, "No magic keyword"),
+ ("random-file", False, 0o0644, "No configure at all"),
+ ],
+)
+def test_auto_detect_autoconf_build_system(
+ filename: str,
+ expected: bool,
+ mode: int,
+ content: Optional[str],
+) -> None:
+ fs_root = build_virtual_file_system(
+ [virtual_path_def(filename, mode=mode, content=content)]
+ )
+ detected = AutoconfBuildSystemRule.auto_detect_build_system(fs_root)
+ assert detected == expected
+
+
+@pytest.mark.parametrize(
+ "filename,expected",
+ [
+ ("GNUmakefile", True),
+ ("Makefile", True),
+ ("makefile", True),
+ ("random-file", False),
+ ],
+)
+def test_auto_detect_make_build_system(
+ filename: str,
+ expected: bool,
+) -> None:
+ fs_root = build_virtual_file_system([filename])
+ detected = MakefileBuildSystemRule.auto_detect_build_system(fs_root)
+ assert detected == expected
+
+
+@pytest.mark.parametrize(
+ "filename,expected",
+ [
+ ("Build.PL", True),
+ ("random-file", False),
+ ],
+)
+def test_auto_detect_perl_build_build_system(
+ filename: str,
+ expected: bool,
+) -> None:
+ fs_root = build_virtual_file_system([filename])
+ detected = PerlBuildBuildSystemRule.auto_detect_build_system(fs_root)
+ assert detected == expected
+
+
+@pytest.mark.parametrize(
+ "filename,expected",
+ [
+ ("Makefile.PL", True),
+ ("random-file", False),
+ ],
+)
+def test_auto_detect_perl_makemaker_build_system(
+ filename: str,
+ expected: bool,
+) -> None:
+ fs_root = build_virtual_file_system([filename])
+ detected = PerlMakeMakerBuildSystemRule.auto_detect_build_system(fs_root)
+ assert detected == expected
+
+
+@pytest.mark.parametrize(
+ "filename,expected",
+ [
+ ("foo.pro", True),
+ ("random-file", False),
+ ],
+)
+def test_auto_detect_qmake_build_systems(
+ filename: str,
+ expected: bool,
+) -> None:
+ fs_root = build_virtual_file_system([filename])
+ detected_qmake = QmakeBuildSystemRule.auto_detect_build_system(fs_root)
+ detected_qmake6 = Qmake6BuildSystemRule.auto_detect_build_system(fs_root)
+ assert detected_qmake == expected
+ assert detected_qmake6 == expected
+
+
+@pytest.mark.parametrize(
+ "filename,expected",
+ [
+ ("CMakeLists.txt", True),
+ ("random-file", False),
+ ],
+)
+def test_auto_detect_cmake_build_systems(
+ filename: str,
+ expected: bool,
+) -> None:
+ fs_root = build_virtual_file_system([filename])
+ detected = CMakeBuildSystemRule.auto_detect_build_system(fs_root)
+ assert detected == expected
+
+
+@pytest.mark.parametrize(
+ "filename,expected",
+ [
+ ("meson.build", True),
+ ("random-file", False),
+ ],
+)
+def test_auto_detect_meson_build_systems(
+ filename: str,
+ expected: bool,
+) -> None:
+ fs_root = build_virtual_file_system([filename])
+ detected = MesonBuildSystemRule.auto_detect_build_system(fs_root)
+ assert detected == expected