summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/ansible-test-sanity-validate-modules/runme.sh
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/targets/ansible-test-sanity-validate-modules/runme.sh')
-rwxr-xr-xtest/integration/targets/ansible-test-sanity-validate-modules/runme.sh34
1 files changed, 34 insertions, 0 deletions
diff --git a/test/integration/targets/ansible-test-sanity-validate-modules/runme.sh b/test/integration/targets/ansible-test-sanity-validate-modules/runme.sh
new file mode 100755
index 0000000..e029996
--- /dev/null
+++ b/test/integration/targets/ansible-test-sanity-validate-modules/runme.sh
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+
+source ../collection/setup.sh
+
+set -eux
+
+ansible-test sanity --test validate-modules --color --truncate 0 --failure-ok --lint "${@}" 1> actual-stdout.txt 2> actual-stderr.txt
+diff -u "${TEST_DIR}/expected.txt" actual-stdout.txt
+grep -f "${TEST_DIR}/expected.txt" actual-stderr.txt
+
+cd ../ps_only
+
+if ! command -V pwsh; then
+ echo "skipping test since pwsh is not available"
+ exit 0
+fi
+
+# Use a PowerShell-only collection to verify that validate-modules does not load the collection loader multiple times.
+ansible-test sanity --test validate-modules --color --truncate 0 "${@}"
+
+cd ../failure
+
+if ansible-test sanity --test validate-modules --color --truncate 0 "${@}" 1> ansible-stdout.txt 2> ansible-stderr.txt; then
+ echo "ansible-test sanity for failure should cause failure"
+ exit 1
+fi
+
+cat ansible-stdout.txt
+grep -q "ERROR: plugins/modules/failure_ps.ps1:0:0: import-error: Exception attempting to import module for argument_spec introspection" < ansible-stdout.txt
+grep -q "test inner error message" < ansible-stdout.txt
+
+cat ansible-stderr.txt
+grep -q "FATAL: The 1 sanity test(s) listed below (out of 1) failed" < ansible-stderr.txt
+grep -q "validate-modules" < ansible-stderr.txt