+
+AT_SETUP([DX_COMMAND_OUTPUT])
+AT_KEYWORDS([DX_COMMAND_OUTPUT macro])
+
+AT_DATA([expout],
+[[ leading whitespace
+trailing whitespace @&t@
+embedded\ backslashes
+ @&t@
+backslash\
+newline
+]])
+
+TEST_CONFIGURE_AC(
+[[DX_COMMAND_OUTPUT([var], [cat expout])
+AS@&t@_ECHO(["$var"]) >test.out
+]])
+TEST_AUTORECONF
+TEST_CONFIGURE
+
+AT_CHECK([cat test.out], [0], [expout])
+
+AT_CLEANUP
+
+AT_SETUP([DX_DO quoting])
+AT_KEYWORDS([DX_DO macro])
+
+TEST_CONFIGURE_AC(
+[[m4@&t@_define([FOO])
+:; { DX_DO([AS@&t@_ECHO_N(["[FOO]"])],
+ [AS@&t@_ECHO_N(["[FOO]"])],
+ [AS@&t@_ECHO(["[FOO]"])])
+} >test.out
+]])
+
+dnl TEST_CONFIGURE_AC(
+dnl [[DX_DO([AS@&t@_ECHO_N([hello,world])],[AS@&t@_ECHO_N([goodbye,world])])
+dnl ]])
+TEST_AUTORECONF
+TEST_CONFIGURE
+AT_CHECK([cat test.out], [0], [[FOOFOOFOO
+]])
+
+AT_CLEANUP