Commit Graph

1237 Commits (fb8bad934b465317d522300d9df248959e460c95)
 

Author SHA1 Message Date
David Wilson d503956493 ansible: Remove duplicate casts already done in Connection 7 years ago
David Wilson 6aeb4e9f05 issue #164: precisely emulate Ansible's stdio behaviour.
* Use identical logic to select when stdout/stderr are merged, so
  'stdout', 'stdout_lines', 'stderr', 'stderr_lines' contain the same
  output before/after the extension.

* When stdout/stderr are merged, synthesize carriage returns just like
  the TTY layer.

* Mimic the SSH connection multiplexing message on stderr. Not really
  for user code, but so compare_output_test.sh needs fewer fixups.
7 years ago
David Wilson c5ca2e87ea issue #164: stop tests on first failure 7 years ago
David Wilson 26cc0f2724 issue #164: fix remote_tmp handling on <2.5 7 years ago
David Wilson 3ebe600389 issue #164: convert "examples" into actual tests
- Add new Travis mode, "ansible_tests.sh" that runs
  integrations/all.yml. Slowly build this up over time to cover more of
  the existing junk.

- Add basic assertions on the output of the existing runner__* files.

- Wire up 2.4.3/2.5.0 jobs in Travis.
7 years ago
David Wilson ae75a0ca8c issue #164: rearrange playbooks a little more 7 years ago
David Wilson 563639961d issue #164: dir structure is gross, but at least tab completion works :> 7 years ago
David Wilson 475d459185 issue #164: rename 'test' to 'run_tests' to avoid tab complete conflict 7 years ago
David Wilson 49aa8834b0 issue #164: split "examples" out into regression/integration tests. 7 years ago
David Wilson aa8d7a0250 issue #164: verify remote_tmp respected by code running remotely. 7 years ago
David Wilson e0381606af Ensure remote_tmp is respected everywhere.
Logic is still somewhat different from Ansible: we don't have to care
about sudo/non-sudo cases, etc.
7 years ago
David Wilson 4805f3cf36 issue #164: slightly flatten docker image layers 7 years ago
David Wilson 8249fa2019 issue #164: typo x2. 7 years ago
David Wilson b9afde0e61 issue #164: typo. 7 years ago
David Wilson 058ddeee58 issue #164: run against 4 targets. 7 years ago
David Wilson 4c842751d0 issue #164: run twice to make timing comparable to old reports 7 years ago
David Wilson 2128ffafce issue #164: cure type error. 7 years ago
David Wilson 5bf5664667 issue #164: speed up DH generation step 7 years ago
David Wilson de5028ac18 issue #164: arrange for DebOps common.yml to run under Travis. 7 years ago
David Wilson 38311336e1 docs: link to Ansible video demo 7 years ago
David Wilson 0e648dbd53 ansible: tidy up planner.py. 7 years ago
David Wilson a731be32a2 ansible: use _ansible_shell_executable in ScriptRunner.
Now we match Ansible error output and exit status. Ansible:

    $ ansible localhost -e end=2 -m custom_binary_single_null
    localhost | FAILED! => {
        "changed": false,
        "module_stderr": "Shared connection to localhost closed.\r\n",
        "module_stdout": "/bin/sh: /Users/dmw/.ansible/tmp/ansible-tmp-1522661797.42-158833651208060/custom_binary_single_null: cannot execute binary file\r\n",
        "msg": "MODULE FAILURE",
        "rc": 126
    }

Mitogen now:

    localhost | FAILED! => {
        "changed": false,
        "module_stderr": "/bin/sh: /var/folders/gw/f6w3dgy16fsg5y4kdthbqycw0000gn/T/ansible_mitogenAYF8LM-binary: cannot execute binary file\n",
        "module_stdout": "",
        "msg": "MODULE FAILURE",
        "rc": 126
    }

Previously:

    localhost | FAILED! => {
        "changed": false,
        "module_stderr": "<type 'exceptions.OSError'>: [Errno 8] Exec format error",
        "module_stdout": "",
        "msg": "MODULE FAILURE",
        "rc": 1
    }
7 years ago
David Wilson e2542c1683 "examples": add perl script regression tests. 7 years ago
David Wilson 20044ba956 "examples": import all.yml 7 years ago
David Wilson 293567e9d5 ansible: fix low_level_execute_command regression. 7 years ago
David Wilson fe9bf1d81d ansible: match Ansible behaviour when script lacks interpreter line. 7 years ago
David Wilson 1fab6d9c25 ansible: permit execve() of temporary files on Linux. 7 years ago
David Wilson d2c009f70f "examples": rename regtest.py -> compare_output_test.py
Incomplete, but getting better all the time.
7 years ago
David Wilson 8ca8b43df1 tests/bench: import "slightly more reliable time" script 7 years ago
David Wilson eb402c8bd4 tests/bench: import wrapper script used for blog charts 7 years ago
David Wilson 047458a8b3 "examples": start adding structure to regression tests. 7 years ago
David Wilson 95ca29262a examples: add README.md to playbook/. 7 years ago
David Wilson f6b82bb8db examples: add make output to gitignore. 7 years ago
David Wilson 380ef7376d ansible: Add support for free strategy. 7 years ago
David Wilson 586318c475 Fix preamble_size.py. 7 years ago
David Wilson 8425b196e7 docs: merge duplicate risks 7 years ago
David Wilson 470d8399a3 ansible: document planner.Planner. 7 years ago
David Wilson 6dcefd631a issue #106: docs: remove built-in only limitation :> 7 years ago
David Wilson c65911e811 Merge branch 'issue106' 7 years ago
David Wilson 822502125d issue #106: 2.3.x compatible get_shebang-alike. 7 years ago
David Wilson e5723e4f5f ansible: fix _make_tmp_path() regression on 2.3.x.
Due to issue #177.
7 years ago
David Wilson a5e4a6f346 issue #106: move helpers.get_bytecode() into NewStyleRunner 7 years ago
David Wilson 41ca3ad94b issue #106: delete junk from example module. 7 years ago
David Wilson 2c17d60ffd issue #106: import basic regtest.py 7 years ago
David Wilson a98a51a328 issue #106: handle JSONARGS modules too. 7 years ago
David Wilson 971b366162 issue #106: import many more test cases 7 years ago
David Wilson 8cc20856a8 issue #106: support custom new-style modules + 'reexec by default'
Rather than assume any structure about the Python code:

* Delete the exit_json/fail_json monkeypatches.
* Patch SystemExit rather than a magic monkeypatch-thrown exception
* Setup fake cStringIO stdin, stdout, stderr and return those along with
  SystemExit exit status
* Setup _ANSIBLE_ARGS as we used to, since we still want to override
  that with '{}' to prevent accidental import hangs, but also provide
  the same string via sys.stdin.
* Compile the module bytecode once and re-execute it for every
  invocation. May change this back again later, once some benchmarks are
  done.
* Remove the fixups stuff for now, it's handled by ^ above.

Should support any "somewhat new style" Python module, including those
that just give up and dump stuff to stdout directly.
7 years ago
David Wilson a954d54644 issue #106: support old-style too. 7 years ago
David Wilson 16b64392e2 issue #106: support WANT_JSON modules. 7 years ago
David Wilson df6daaf3c4 issue #106: working/semantically compatible binary support. 7 years ago