summaryrefslogtreecommitdiffstats
path: root/test/integration/targets/lookup_fileglob
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/targets/lookup_fileglob')
-rw-r--r--test/integration/targets/lookup_fileglob/aliases1
-rw-r--r--test/integration/targets/lookup_fileglob/find_levels/files/play_adj_subdir.txt1
-rw-r--r--test/integration/targets/lookup_fileglob/find_levels/files/somepath/play_adj_subsubdir.txt1
-rw-r--r--test/integration/targets/lookup_fileglob/find_levels/play.yml13
-rw-r--r--test/integration/targets/lookup_fileglob/find_levels/play_adj.txt1
-rw-r--r--test/integration/targets/lookup_fileglob/find_levels/roles/get_file/files/in_role.txt1
-rw-r--r--test/integration/targets/lookup_fileglob/find_levels/roles/get_file/files/otherpath/in_role_subdir.txt1
-rw-r--r--test/integration/targets/lookup_fileglob/find_levels/roles/get_file/tasks/main.yml10
-rw-r--r--test/integration/targets/lookup_fileglob/issue72873/test.yml31
-rw-r--r--test/integration/targets/lookup_fileglob/non_existent/play.yml6
-rwxr-xr-xtest/integration/targets/lookup_fileglob/runme.sh18
11 files changed, 84 insertions, 0 deletions
diff --git a/test/integration/targets/lookup_fileglob/aliases b/test/integration/targets/lookup_fileglob/aliases
new file mode 100644
index 0000000..b598321
--- /dev/null
+++ b/test/integration/targets/lookup_fileglob/aliases
@@ -0,0 +1 @@
+shippable/posix/group3
diff --git a/test/integration/targets/lookup_fileglob/find_levels/files/play_adj_subdir.txt b/test/integration/targets/lookup_fileglob/find_levels/files/play_adj_subdir.txt
new file mode 100644
index 0000000..5025588
--- /dev/null
+++ b/test/integration/targets/lookup_fileglob/find_levels/files/play_adj_subdir.txt
@@ -0,0 +1 @@
+in files subdir adjacent to play
diff --git a/test/integration/targets/lookup_fileglob/find_levels/files/somepath/play_adj_subsubdir.txt b/test/integration/targets/lookup_fileglob/find_levels/files/somepath/play_adj_subsubdir.txt
new file mode 100644
index 0000000..96c7a54
--- /dev/null
+++ b/test/integration/targets/lookup_fileglob/find_levels/files/somepath/play_adj_subsubdir.txt
@@ -0,0 +1 @@
+in play adjacent subdir of files/
diff --git a/test/integration/targets/lookup_fileglob/find_levels/play.yml b/test/integration/targets/lookup_fileglob/find_levels/play.yml
new file mode 100644
index 0000000..578d482
--- /dev/null
+++ b/test/integration/targets/lookup_fileglob/find_levels/play.yml
@@ -0,0 +1,13 @@
+- hosts: localhost
+ gather_facts: false
+ vars:
+ expected:
+ play_adj: adjacent to play
+ play_adj_subdir: in files subdir adjacent to play
+ somepath/play_adj_subsubdir: in play adjacent subdir of files/
+ in_role: file in role
+ otherpath/in_role_subdir: file in role subdir
+ tasks:
+ - name: Import role lookup
+ import_role:
+ name: get_file
diff --git a/test/integration/targets/lookup_fileglob/find_levels/play_adj.txt b/test/integration/targets/lookup_fileglob/find_levels/play_adj.txt
new file mode 100644
index 0000000..2cc4411
--- /dev/null
+++ b/test/integration/targets/lookup_fileglob/find_levels/play_adj.txt
@@ -0,0 +1 @@
+adjacent to play
diff --git a/test/integration/targets/lookup_fileglob/find_levels/roles/get_file/files/in_role.txt b/test/integration/targets/lookup_fileglob/find_levels/roles/get_file/files/in_role.txt
new file mode 100644
index 0000000..fdfc947
--- /dev/null
+++ b/test/integration/targets/lookup_fileglob/find_levels/roles/get_file/files/in_role.txt
@@ -0,0 +1 @@
+file in role
diff --git a/test/integration/targets/lookup_fileglob/find_levels/roles/get_file/files/otherpath/in_role_subdir.txt b/test/integration/targets/lookup_fileglob/find_levels/roles/get_file/files/otherpath/in_role_subdir.txt
new file mode 100644
index 0000000..40e75a4
--- /dev/null
+++ b/test/integration/targets/lookup_fileglob/find_levels/roles/get_file/files/otherpath/in_role_subdir.txt
@@ -0,0 +1 @@
+file in role subdir
diff --git a/test/integration/targets/lookup_fileglob/find_levels/roles/get_file/tasks/main.yml b/test/integration/targets/lookup_fileglob/find_levels/roles/get_file/tasks/main.yml
new file mode 100644
index 0000000..2fc21df
--- /dev/null
+++ b/test/integration/targets/lookup_fileglob/find_levels/roles/get_file/tasks/main.yml
@@ -0,0 +1,10 @@
+- name: show file contents
+ debug:
+ msg: '{{ q("fileglob", seed + ".*") }}'
+ register: found
+
+- name: did we get right one?
+ assert:
+ that:
+ - found['msg'][0].endswith(seed + '.txt')
+ - q('file', found['msg'][0])[0] == expected[seed]
diff --git a/test/integration/targets/lookup_fileglob/issue72873/test.yml b/test/integration/targets/lookup_fileglob/issue72873/test.yml
new file mode 100644
index 0000000..218ee58
--- /dev/null
+++ b/test/integration/targets/lookup_fileglob/issue72873/test.yml
@@ -0,0 +1,31 @@
+- hosts: localhost
+ connection: local
+ gather_facts: false
+ vars:
+ dir: files
+ tasks:
+ - file: path='{{ dir }}' state=directory
+
+ - file: path='setvars.bat' state=touch # in current directory!
+
+ - file: path='{{ dir }}/{{ item }}' state=touch
+ loop:
+ - json.c
+ - strlcpy.c
+ - base64.c
+ - json.h
+ - base64.h
+ - strlcpy.h
+ - jo.c
+
+ - name: Get working order results and sort them
+ set_fact:
+ working: '{{ query("fileglob", "setvars.bat", "{{ dir }}/*.[ch]") | sort }}'
+
+ - name: Get broken order results and sort them
+ set_fact:
+ broken: '{{ query("fileglob", "{{ dir }}/*.[ch]", "setvars.bat") | sort }}'
+
+ - assert:
+ that:
+ - working == broken
diff --git a/test/integration/targets/lookup_fileglob/non_existent/play.yml b/test/integration/targets/lookup_fileglob/non_existent/play.yml
new file mode 100644
index 0000000..e92dff5
--- /dev/null
+++ b/test/integration/targets/lookup_fileglob/non_existent/play.yml
@@ -0,0 +1,6 @@
+- hosts: localhost
+ gather_facts: false
+ tasks:
+ - name: fileglob should be empty
+ assert:
+ that: q("fileglob", seed) | length == 0
diff --git a/test/integration/targets/lookup_fileglob/runme.sh b/test/integration/targets/lookup_fileglob/runme.sh
new file mode 100755
index 0000000..be04421
--- /dev/null
+++ b/test/integration/targets/lookup_fileglob/runme.sh
@@ -0,0 +1,18 @@
+#!/usr/bin/env bash
+
+set -eux
+
+# fun multilevel finds
+for seed in play_adj play_adj_subdir somepath/play_adj_subsubdir in_role otherpath/in_role_subdir
+do
+ ansible-playbook find_levels/play.yml -e "seed='${seed}'" "$@"
+done
+
+# non-existent paths
+for seed in foo foo/bar foo/bar/baz
+do
+ ansible-playbook non_existent/play.yml -e "seed='${seed}'" "$@"
+done
+
+# test for issue 72873 fix
+ansible-playbook issue72873/test.yml "$@"