From 4e369a31db566c3017b24b1460bdc88dfb9ecad7 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. --- 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 8b1849b502..2d4c9f5ba7 100644 --- a/test/integration/Makefile +++ b/test/integration/Makefile @@ -27,7 +27,7 @@ UNAME := $(shell uname | tr '[:upper:]' '[:lower:]') all: setup other non_destructive destructive -other: test_test_infra parsing test_var_precedence unicode test_templating_settings environment test_connection 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_binary_modules test_async +other: test_test_infra parsing test_var_precedence unicode test_templating_settings environment test_connection test_async_conditional 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_binary_modules test_test_infra: # ensure fail/assert work locally and can stop execution with non-zero exit code @@ -86,6 +86,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) @@ -305,7 +313,7 @@ test_binary_modules: 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 ec370d7c7f..aa6c2467f1 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