summaryrefslogtreecommitdiff
path: root/test/integration/targets/win_lineinfile/tasks/main.yml
diff options
context:
space:
mode:
Diffstat (limited to 'test/integration/targets/win_lineinfile/tasks/main.yml')
-rw-r--r--test/integration/targets/win_lineinfile/tasks/main.yml708
1 files changed, 0 insertions, 708 deletions
diff --git a/test/integration/targets/win_lineinfile/tasks/main.yml b/test/integration/targets/win_lineinfile/tasks/main.yml
deleted file mode 100644
index e5f047bec3..0000000000
--- a/test/integration/targets/win_lineinfile/tasks/main.yml
+++ /dev/null
@@ -1,708 +0,0 @@
-# Test code for the win_lineinfile module, adapted from the standard lineinfile module tests
-#
-# This file is part of Ansible
-#
-# Ansible is free software: you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or
-# (at your option) any later version.
-#
-# Ansible is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
-
-
-- name: deploy the test file for lineinfile
- win_copy: src=test.txt dest={{win_output_dir}}/test.txt
- register: result
-
-- name: assert that the test file was deployed
- assert:
- that:
- - "result.changed == true"
-
-- name: stat the test file
- win_stat: path={{win_output_dir}}/test.txt
- register: result
-
-- name: check win_stat file result
- assert:
- that:
- - "result.stat.exists"
- - "not result.stat.isdir"
- - "result.stat.checksum == '5feac65e442c91f557fc90069ce6efc4d346ab51'"
- - "result is not failed"
- - "result is not changed"
-
-
-- name: insert a line at the beginning of the file, and back it up
- win_lineinfile: dest={{win_output_dir}}/test.txt state=present line="New line at the beginning" insertbefore="BOF" backup=yes
- register: result
-
-- name: check backup_file
- win_stat:
- path: '{{ result.backup_file }}'
- register: backup_file
-
-- name: assert that the line was inserted at the head of the file
- assert:
- that:
- - result.changed == true
- - result.msg == 'line added'
- - backup_file.stat.exists == true
-
-- name: stat the backup file
- win_stat: path={{result.backup}}
- register: result
-
-- name: assert the backup file matches the previous hash
- assert:
- that:
- - "result.stat.checksum == '5feac65e442c91f557fc90069ce6efc4d346ab51'"
-
-- name: stat the test after the insert at the head
- win_stat: path={{win_output_dir}}/test.txt
- register: result
-
-- name: assert test hash is what we expect for the file with the insert at the head
- assert:
- that:
- - "result.stat.checksum == 'b526e2e044defc64dfb0fad2f56e105178f317d8'"
-
-- name: insert a line at the end of the file
- win_lineinfile: dest={{win_output_dir}}/test.txt state=present line="New line at the end" insertafter="EOF"
- register: result
-
-- name: assert that the line was inserted at the end of the file
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
-
-- name: stat the test after the insert at the end
- win_stat: path={{win_output_dir}}/test.txt
- register: result
-
-- name: assert test checksum matches after the insert at the end
- assert:
- that:
- - "result.stat.checksum == 'dd5e207e28ce694ab18e41c2b16deb74fde93b14'"
-
-- name: insert a line after the first line
- win_lineinfile: dest={{win_output_dir}}/test.txt state=present line="New line after line 1" insertafter="^This is line 1$"
- register: result
-
-- name: assert that the line was inserted after the first line
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
-
-- name: stat the test after insert after the first line
- win_stat: path={{win_output_dir}}/test.txt
- register: result
-
-- name: assert test checksum matches after the insert after the first line
- assert:
- that:
- - "result.stat.checksum == '604b17405f2088e6868af9680b7834087acdc8f4'"
-
-- name: insert a line before the last line
- win_lineinfile: dest={{win_output_dir}}/test.txt state=present line="New line before line 5" insertbefore="^This is line 5$"
- register: result
-
-- name: assert that the line was inserted before the last line
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
-
-- name: stat the test after the insert before the last line
- win_stat: path={{win_output_dir}}/test.txt
- register: result
-
-- name: assert test checksum matches after the insert before the last line
- assert:
- that:
- - "result.stat.checksum == '8f5b30e8f01578043d782e5a68d4c327e75a6e34'"
-
-- name: replace a line with backrefs
- win_lineinfile: dest={{win_output_dir}}/test.txt state=present line="This is line 3" backrefs=yes regexp="^(REF).*$"
- register: result
-
-- name: assert that the line with backrefs was changed
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line replaced'"
-
-- name: stat the test after the backref line was replaced
- win_stat: path={{win_output_dir}}/test.txt
- register: result
-
-- name: assert test checksum matches after backref line was replaced
- assert:
- that:
- - "result.stat.checksum == 'ef6b02645908511a2cfd2df29d50dd008897c580'"
-
-- name: remove the middle line
- win_lineinfile: dest={{win_output_dir}}/test.txt state=absent regexp="^This is line 3$"
- register: result
-
-- name: assert that the line was removed
- assert:
- that:
- - "result.changed == true"
- - "result.msg == '1 line(s) removed'"
-
-- name: stat the test after the middle line was removed
- win_stat: path={{win_output_dir}}/test.txt
- register: result
-
-- name: assert test checksum matches after the middle line was removed
- assert:
- that:
- - "result.stat.checksum == '11695efa472be5c31c736bc43e055f8ac90eabdf'"
-
-- name: run a validation script that succeeds
- win_lineinfile: dest={{win_output_dir}}/test.txt state=absent regexp="^This is line 5$" validate="sort.exe %s"
- register: result
-
-- name: assert that the file validated after removing a line
- assert:
- that:
- - "result.changed == true"
- - "result.msg == '1 line(s) removed'"
-
-- name: stat the test after the validation succeeded
- win_stat: path={{win_output_dir}}/test.txt
- register: result
-
-- name: assert test checksum matches after the validation succeeded
- assert:
- that:
- - "result.stat.checksum == '39c38a30aa6ac6af9ec41f54c7ed7683f1249347'"
-
-- name: run a validation script that fails
- win_lineinfile: dest={{win_output_dir}}/test.txt state=absent regexp="^This is line 1$" validate="sort.exe %s.foo"
- register: result
- ignore_errors: yes
-
-- name: assert that the validate failed
- assert:
- that:
- - "result.failed == true"
-
-- name: stat the test after the validation failed
- win_stat: path={{win_output_dir}}/test.txt
- register: result
-
-- name: assert test checksum matches the previous after the validation failed
- assert:
- that:
- - "result.stat.checksum == '39c38a30aa6ac6af9ec41f54c7ed7683f1249347'"
-
-- name: use create=yes
- win_lineinfile: dest={{win_output_dir}}/new_test.txt create=yes insertbefore=BOF state=present line="This is a new file"
- register: result
-
-- name: assert that the new file was created
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
-
-- name: validate that the newly created file exists
- win_stat: path={{win_output_dir}}/new_test.txt
- register: result
- ignore_errors: yes
-
-- name: assert the newly created test checksum matches
- assert:
- that:
- - "result.stat.checksum == '84faac1183841c57434693752fc3debc91b9195d'"
-
-# Test EOF in cases where file has no newline at EOF
-- name: testnoeof deploy the file for lineinfile
- win_copy: src=testnoeof.txt dest={{win_output_dir}}/testnoeof.txt
- register: result
-
-- name: testnoeof insert a line at the end of the file
- win_lineinfile: dest={{win_output_dir}}/testnoeof.txt state=present line="New line at the end" insertafter="EOF"
- register: result
-
-- name: testempty assert that the line was inserted at the end of the file
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
-
-- name: testnoeof stat the no newline EOF test after the insert at the end
- win_stat: path={{win_output_dir}}/testnoeof.txt
- register: result
-
-- name: testnoeof assert test checksum matches after the insert at the end
- assert:
- that:
- - "result.stat.checksum == '229852b09f7e9921fbcbb0ee0166ba78f7f7f261'"
-
-- name: add multiple lines at the end of the file
- win_lineinfile: dest={{win_output_dir}}/test.txt state=present line="This is a line\r\nwith newline character" insertafter="EOF"
- register: result
-
-- name: assert that the multiple lines was inserted
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
-
-- name: stat file after adding multiple lines
- win_stat: path={{win_output_dir}}/test.txt
- register: result
-
-- name: assert test checksum matches after inserting multiple lines
- assert:
- that:
- - "result.stat.checksum == '1401413cd4eac732be66cd6aceddd334c4240f86'"
-
-
-
-# Test EOF with empty file to make sure no unnecessary newline is added
-- name: testempty deploy the testempty file for lineinfile
- win_copy: src=testempty.txt dest={{win_output_dir}}/testempty.txt
- register: result
-
-- name: testempty insert a line at the end of the file
- win_lineinfile: dest={{win_output_dir}}/testempty.txt state=present line="New line at the end" insertafter="EOF"
- register: result
-
-- name: testempty assert that the line was inserted at the end of the file
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
-
-- name: testempty stat the test after the insert at the end
- win_stat: path={{win_output_dir}}/testempty.txt
- register: result
-
-- name: testempty assert test checksum matches after the insert at the end
- assert:
- that:
- - "result.stat.checksum == 'd3d34f11edda51be7ca5dcb0757cf3e1257c0bfe'"
-
-
-
-- name: replace a line with backrefs included in the line
- win_lineinfile: dest={{win_output_dir}}/test.txt state=present line="New $1 created with the backref" backrefs=yes regexp="^This is (line 4)$"
- register: result
-
-- name: assert that the line with backrefs was changed
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line replaced'"
-
-- name: stat the test after the backref line was replaced
- win_stat: path={{win_output_dir}}/test.txt
- register: result
-
-- name: assert test checksum matches after backref line was replaced
- assert:
- that:
- - "result.stat.checksum == 'e6ff42e926dac2274c93dff0b8a323e07ae09149'"
-
-###################################################################
-# issue 8535
-
-- name: create a new file for testing quoting issues
- win_copy: src=test_quoting.txt dest={{win_output_dir}}/test_quoting.txt
- register: result
-
-- name: assert the new file was created
- assert:
- that:
- - result.changed
-
-- name: use with_items to add code-like strings to the quoting txt file
- win_lineinfile: >
- dest={{win_output_dir}}/test_quoting.txt
- line="{{ item }}"
- insertbefore="BOF"
- with_items:
- - "'foo'"
- - "dotenv.load();"
- - "var dotenv = require('dotenv');"
- register: result
-
-- name: assert the quote test file was modified correctly
- assert:
- that:
- - result.results|length == 3
- - result.results[0].changed
- - result.results[0].item == "'foo'"
- - result.results[1].changed
- - result.results[1].item == "dotenv.load();"
- - result.results[2].changed
- - result.results[2].item == "var dotenv = require('dotenv');"
-
-- name: stat the quote test file
- win_stat: path={{win_output_dir}}/test_quoting.txt
- register: result
-
-- name: assert test checksum matches for quote test file
- assert:
- that:
- - "result.stat.checksum == 'f3bccdbdfa1d7176c497ef87d04957af40ab48d2'"
-
-- name: append a line into the quoted file with a single quote
- win_lineinfile: dest={{win_output_dir}}/test_quoting.txt line="import g'"
- register: result
-
-- name: assert that the quoted file was changed
- assert:
- that:
- - result.changed
-
-- name: stat the quote test file
- win_stat: path={{win_output_dir}}/test_quoting.txt
- register: result
-
-- name: assert test checksum matches adding line with single quote
- assert:
- that:
- - "result.stat.checksum == 'dabf4cbe471e1797d8dcfc773b6b638c524d5237'"
-
-- name: insert a line into the quoted file with many double quotation strings
- win_lineinfile: dest={{win_output_dir}}/test_quoting.txt line='"quote" and "unquote"'
- register: result
-
-- name: assert that the quoted file was changed
- assert:
- that:
- - result.changed
-
-- name: stat the quote test file
- win_stat: path={{win_output_dir}}/test_quoting.txt
- register: result
-
-- name: assert test checksum matches quoted line added
- assert:
- that:
- - "result.stat.checksum == '9dc1fc1ff19942e2936564102ad37134fa83b91d'"
-
-
-# Windows vs. Unix line separator test cases
-
-- name: Create windows test file with initial line
- win_lineinfile: dest={{win_output_dir}}/test_windows_sep.txt create=yes insertbefore=BOF state=present line="This is a new file"
- register: result
-
-- name: assert that the new file was created
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
-
-- name: validate that the newly created file exists
- win_stat: path={{win_output_dir}}/test_windows_sep.txt
- register: result
-
-- name: assert the newly created file checksum matches
- assert:
- that:
- - "result.stat.checksum == '84faac1183841c57434693752fc3debc91b9195d'"
-
-- name: Test appending to the file using the default (windows) line separator
- win_lineinfile: dest={{win_output_dir}}/test_windows_sep.txt insertbefore=EOF state=present line="This is the last line"
- register: result
-
-- name: assert that the new line was added
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
-
-- name: stat the file
- win_stat: path={{win_output_dir}}/test_windows_sep.txt
- register: result
-
-- name: assert the file checksum matches expected checksum
- assert:
- that:
- - "result.stat.checksum == '71a17ddd1d57ed7c7912e4fd11ecb2ead0b27033'"
-
-
-- name: Create unix test file with initial line
- win_lineinfile: dest={{win_output_dir}}/test_unix_sep.txt create=yes insertbefore=BOF state=present line="This is a new file"
- register: result
-
-- name: assert that the new file was created
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
-
-- name: validate that the newly created file exists
- win_stat: path={{win_output_dir}}/test_unix_sep.txt
- register: result
-
-- name: assert the newly created file checksum matches
- assert:
- that:
- - "result.stat.checksum == '84faac1183841c57434693752fc3debc91b9195d'"
-
-- name: Test appending to the file using unix line separator
- win_lineinfile: dest={{win_output_dir}}/test_unix_sep.txt insertbefore=EOF state=present line="This is the last line" newline="unix"
- register: result
-
-- name: assert that the new line was added
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
-
-- name: stat the file
- win_stat: path={{win_output_dir}}/test_unix_sep.txt
- register: result
-
-- name: assert the file checksum matches expected checksum
- assert:
- that:
- - "result.stat.checksum == 'f1f634a37ab1c73efb77a71a5ad2cc87b61b17ae'"
-
-
-# Encoding management test cases
-
-# Default (auto) encoding should use utf-8 with no BOM
-- name: Test create file without explicit encoding results in utf-8 without BOM
- win_lineinfile: dest={{win_output_dir}}/test_auto_utf8.txt create=yes insertbefore=BOF state=present line="This is a new utf-8 file"
- register: result
-
-- name: assert that the new file was created
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
- - "result.encoding == 'utf-8'"
-
-- name: validate that the newly created file exists
- win_stat: path={{win_output_dir}}/test_auto_utf8.txt
- register: result
-
-- name: assert the newly created file checksum matches
- assert:
- that:
- - "result.stat.checksum == 'b69fcbacca8291a4668f57fba91d7c022f1c3dc7'"
-
-- name: Test appending to the utf-8 without BOM file - should autodetect UTF-8 no BOM
- win_lineinfile: dest={{win_output_dir}}/test_auto_utf8.txt insertbefore=EOF state=present line="This is the last line"
- register: result
-
-- name: assert that the new line was added and encoding did not change
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
- - "result.encoding == 'utf-8'"
-
-- name: stat the file
- win_stat: path={{win_output_dir}}/test_auto_utf8.txt
- register: result
-
-- name: assert the file checksum matches
- assert:
- that:
- - "result.stat.checksum == '64d747f1ebf8c9d793dbfd27126e4152d39a3848'"
-
-
-# UTF-8 explicit (with BOM)
-- name: Test create file with explicit utf-8 encoding results in utf-8 with a BOM
- win_lineinfile: dest={{win_output_dir}}/test_utf8.txt create=yes encoding="utf-8" insertbefore=BOF state=present line="This is a new utf-8 file"
- register: result
-
-- name: assert that the new file was created
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
- - "result.encoding == 'utf-8'"
-
-- name: validate that the newly created file exists
- win_stat: path={{win_output_dir}}/test_utf8.txt
- register: result
-
-- name: assert the newly created file checksum matches
- assert:
- that:
- - "result.stat.checksum == 'd45344b2b3bf1cf90eae851b40612f5f37a88bbb'"
-
-- name: Test appending to the utf-8 with BOM file - should autodetect utf-8 with BOM encoding
- win_lineinfile: dest={{win_output_dir}}/test_utf8.txt insertbefore=EOF state=present line="This is the last line"
- register: result
-
-- name: assert that the new line was added and encoding did not change
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
- - "result.encoding == 'utf-8'"
-
-- name: stat the file
- win_stat: path={{win_output_dir}}/test_utf8.txt
- register: result
-
-- name: assert the file checksum matches
- assert:
- that:
- - "result.stat.checksum == '9b84254489f40f258871a4c6573cacc65895ee1a'"
-
-
-# UTF-16 explicit
-- name: Test create file with explicit utf-16 encoding
- win_lineinfile: dest={{win_output_dir}}/test_utf16.txt create=yes encoding="utf-16" insertbefore=BOF state=present line="This is a new utf-16 file"
- register: result
-
-- name: assert that the new file was created
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
- - "result.encoding == 'utf-16'"
-
-- name: validate that the newly created file exists
- win_stat: path={{win_output_dir}}/test_utf16.txt
- register: result
-
-- name: assert the newly created file checksum matches
- assert:
- that:
- - "result.stat.checksum == '785b0693cec13b60e2c232782adeda2f8a967434'"
-
-- name: Test appending to the utf-16 file - should autodetect utf-16 encoding
- win_lineinfile: dest={{win_output_dir}}/test_utf16.txt insertbefore=EOF state=present line="This is the last line"
- register: result
-
-- name: assert that the new line was added and encoding did not change
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
- - "result.encoding == 'utf-16'"
-
-- name: stat the file
- win_stat: path={{win_output_dir}}/test_utf16.txt
- register: result
-
-- name: assert the file checksum matches
- assert:
- that:
- - "result.stat.checksum == '70e4eb3ba795e1ba94d262db47e4fd17c64b2e73'"
-
-# UTF-32 explicit
-- name: Test create file with explicit utf-32 encoding
- win_lineinfile: dest={{win_output_dir}}/test_utf32.txt create=yes encoding="utf-32" insertbefore=BOF state=present line="This is a new utf-32 file"
- register: result
-
-- name: assert that the new file was created
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
- - "result.encoding == 'utf-32'"
-
-- name: validate that the newly created file exists
- win_stat: path={{win_output_dir}}/test_utf32.txt
- register: result
-
-- name: assert the newly created file checksum matches
- assert:
- that:
- - "result.stat.checksum == '7a6e3f3604c0def431aaa813173a4ddaa10fd1fb'"
-
-- name: Test appending to the utf-32 file - should autodetect utf-32 encoding
- win_lineinfile: dest={{win_output_dir}}/test_utf32.txt insertbefore=EOF state=present line="This is the last line"
- register: result
-
-- name: assert that the new line was added and encoding did not change
- assert:
- that:
- - "result.changed == true"
- - "result.msg == 'line added'"
- - "result.encoding == 'utf-32'"
-
-- name: stat the file
- win_stat: path={{win_output_dir}}/test_utf32.txt
- register: result
-
-- name: assert the file checksum matches
- assert:
- that:
- - "result.stat.checksum == '66a72e71f42c4775f4326da95cfe82c8830e5022'"
-
-#########################################################################
-# issue #33858
-# \r\n causes line break instead of printing literally which breaks paths.
-
-- name: create testing file
- win_copy:
- src: test_linebreak.txt
- dest: "{{win_output_dir}}/test_linebreak.txt"
-
-- name: stat the test file
- win_stat:
- path: "{{win_output_dir}}/test_linebreak.txt"
- register: result
-
-# (Get-FileHash -path C:\ansible\test\integration\targets\win_lineinfile\files\test_linebreak.txt -Algorithm sha1).hash.tolower()
-- name: check win_stat file result
- assert:
- that:
- - result.stat.exists
- - not result.stat.isdir
- - result.stat.checksum == 'da39a3ee5e6b4b0d3255bfef95601890afd80709'
- - result is not failed
- - result is not changed
-
-- name: insert path c:\return\new to test file
- win_lineinfile:
- dest: "{{win_output_dir}}/test_linebreak.txt"
- line: c:\return\new
- register: result_literal
-
-- name: insert path "c:\return\new" to test file, will cause line breaks
- win_lineinfile:
- dest: "{{win_output_dir}}/test_linebreak.txt"
- line: "c:\return\new"
- register: result_expand
-
-- name: assert that the lines were inserted
- assert:
- that:
- - result_literal.changed == true
- - result_literal.msg == 'line added'
- - result_expand.changed == true
- - result_expand.msg == 'line added'
-
-- name: stat the test file
- win_stat:
- path: "{{win_output_dir}}/test_linebreak.txt"
- register: result
-
-- debug:
- var: result
- verbosity: 1
-
-# expect that the file looks like this:
-# c:\return\new
-# c:
-# eturn
-# ew #or c:eturnew on windows
-- name: assert that one line is literal and the other has breaks
- assert:
- that:
- - result.stat.checksum == 'd2dfd11bc70526ff13a91153c76a7ae5595a845b'