From 8659f255df742072bc8a5bc3a307a2ba3153f175 Mon Sep 17 00:00:00 2001 From: Matt Clay Date: Fri, 1 Jul 2016 17:59:06 -0700 Subject: [PATCH] Fix test_async. (#16552) * Conditionally run test_async in docker containers. * Revise test_async test. (cherry picked from commit 4e369a31db566c3017b24b1460bdc88dfb9ecad7) --- test/integration/Makefile | 14 +++++++++++--- test/integration/test_async.yml | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/test/integration/Makefile b/test/integration/Makefile index 7046af52216..82596b58911 100644 --- a/test/integration/Makefile +++ b/test/integration/Makefile @@ -23,7 +23,7 @@ VAULT_PASSWORD_FILE = vault-password CONSUL_RUNNING := $(shell python consul_running.py) EUID := $(shell id -u -r) -all: setup test_test_infra parsing test_var_precedence unicode test_templating_settings environment test_connection test_async non_destructive destructive includes blocks pull check_mode test_hash test_handlers test_group_by test_vault test_tags test_lookup_paths no_log test_gathering_facts +all: setup test_test_infra parsing test_var_precedence unicode test_templating_settings environment test_connection test_async_conditional non_destructive destructive includes blocks pull check_mode test_hash test_handlers test_group_by test_vault test_tags test_lookup_paths no_log test_gathering_facts test_test_infra: # ensure fail/assert work locally and can stop execution with non-zero exit code @@ -82,6 +82,14 @@ environment: setup non_destructive: setup ansible-playbook non_destructive.yml -i $(INVENTORY) -e outputdir=$(TEST_DIR) -e @$(VARS_FILE) $(CREDENTIALS_ARG) -v $(TEST_FLAGS) +# For our Docker images, which identify themselves with "ENV container=docker", automatically run the test_async target. +# Otherwise, skip it, since we don't know if local ssh is available. You can always run the test_async target manually. +ifeq ($(container),docker) +test_async_conditional: test_async +else +test_async_conditional: +endif + # For our Docker images, which identify themselves with "ENV container=docker", use the test_docker inventory group. # Otherwise use the test_default inventory group, which runs fewer tests, but should work on any system. ifeq ($(container),docker) @@ -287,7 +295,7 @@ no_log: setup test_async: # Verify that extra data before module JSON output during async call is ignored. - LC_ALL=bogus ansible-playbook test_async.yml -i $(INVENTORY) -e outputdir=$(TEST_DIR) -v $(TEST_FLAGS) + ANSIBLE_DEBUG=0 LC_ALL=bogus ansible-playbook test_async.yml -i localhost, -e ansible_connection=ssh -v $(TEST_FLAGS) # Verify that the warning exists by examining debug output. - ANSIBLE_DEBUG=1 LC_ALL=bogus ansible-playbook test_async.yml -i $(INVENTORY) -e outputdir=$(TEST_DIR) -v $(TEST_FLAGS) \ + ANSIBLE_DEBUG=1 LC_ALL=bogus ansible-playbook test_async.yml -i localhost, -e ansible_connection=ssh -v $(TEST_FLAGS) \ | grep -q 'bash: warning: setlocale: LC_ALL: cannot change locale (bogus)' diff --git a/test/integration/test_async.yml b/test/integration/test_async.yml index ec370d7c7f2..aa6c2467f12 100644 --- a/test/integration/test_async.yml +++ b/test/integration/test_async.yml @@ -1,4 +1,4 @@ -- hosts: testhost3 +- hosts: localhost gather_facts: false tasks: # make sure non-JSON data before module output is ignored