Browse Source

Igr. test: offline enable/disable

Davin McCall 8 months ago
parent
commit
0e7a08b1e2

+ 1 - 1
src/igr-tests/igr-runner.cc

@@ -15,7 +15,7 @@ int main(int argc, char **argv)
     const char * const test_dirs[] = { "basic", "environ", "environ2", "ps-environ", "chain-to", "force-stop",
             "restart", "check-basic", "check-cycle", "check-cycle2", "check-lint", "reload1", "reload2",
             "no-command-error", "add-rm-dep", "var-subst", "svc-start-fail", "dep-not-found", "pseudo-cycle",
-            "before-after", "before-after2", "log-via-pipe", "catlog" };
+            "before-after", "before-after2", "log-via-pipe", "catlog", "offline-enable" };
     constexpr int num_tests = sizeof(test_dirs) / sizeof(test_dirs[0]);
 
     int passed = 0;

+ 7 - 0
src/igr-tests/meson.build

@@ -29,6 +29,7 @@ beforeafter_test_script = files(meson.current_source_dir() + '/before-after/run-
 beforeafter2_test_script = files(meson.current_source_dir() + '/before-after2/run-test.sh')
 logviapipe_test_script = files(meson.current_source_dir() + '/log-via-pipe/run-test.sh')
 catlog_test_script = files(meson.current_source_dir() + '/catlog/run-test.sh')
+offlineenable_test_script = files(meson.current_source_dir() + '/offline-enable/run-test.sh')
 test(
      'basic',
      basic_test_script,
@@ -167,3 +168,9 @@ test(
     env : igr_tests_env,
     suite : 'igr_tests'
 )
+test(
+    'offline-enable',
+    offlineenable_test_script,
+    env : igr_tests_env,
+    suite : 'igr_tests'
+)

+ 24 - 0
src/igr-tests/offline-enable/run-test.sh

@@ -0,0 +1,24 @@
+#!/bin/sh
+
+set -eu
+cd "$(dirname "$0")"
+. ../igr_functions.sh
+
+rm -rf "$IGR_OUTPUT"/*
+
+cp -pr sd "$IGR_OUTPUT"
+mkdir -p "$IGR_OUTPUT/sd/boot.d"
+
+run_dinitctl $QUIET --offline -d "$IGR_OUTPUT/sd" enable A
+   
+if [ ! -f "$IGR_OUTPUT/sd/boot.d/A" ]; then
+    error "Service A not enabled after enable command; $IGR_OUTPUT/sd/boot.d/A does not exist"
+fi
+
+run_dinitctl $QUIET --offline -d "$IGR_OUTPUT/sd" disable A
+
+if [ -f "$IGR_OUTPUT/sd/boot.d/A" ]; then
+    error "Service A not disabled after disable command; $IGR_OUTPUT/sd/boot.d/A still exists"
+fi
+
+exit 0

+ 1 - 0
src/igr-tests/offline-enable/sd/A

@@ -0,0 +1 @@
+type = internal

+ 2 - 0
src/igr-tests/offline-enable/sd/boot

@@ -0,0 +1,2 @@
+type = internal
+waits-for.d = boot.d