blob: f17900baed3e0068efb4313789ede0837aedb62e [file] [log] [blame] [edit]
#!/bin/bash
# Copyright 2017-2020 The Verible Authors.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Find input files
MY_INPUT_FILE="${TEST_TMPDIR}/myinput.txt"
readonly MY_INPUT_FILE
MY_OUTPUT_FILE="${TEST_TMPDIR}/myoutput.txt"
readonly MY_OUTPUT_FILE
MY_EXPECT_FILE="${TEST_TMPDIR}/myexpect.txt"
readonly MY_EXPECT_FILE
# Process script flags and arguments.
[[ "$#" == 2 ]] || {
echo "Expecting 2 positional arguments:"
echo " verible-transform-interactive.sh"
echo " verible-patch-tool"
exit 1
}
transform_interactive="$1"
patch_tool="$2"
transform_command=("$transform_interactive" --patch-tool="$patch_tool")
# expect these two input files to be modified in place (potentially)
cat > "$MY_INPUT_FILE".test1.txt <<EOF
aaa
bbb
ccc
ddd
eee
EOF
cat > "$MY_INPUT_FILE".test2.txt <<EOF
eee
ddd
ccc
bbb
aaa
EOF
# accept edit on test1 file, but not the test2 file
cat > "$MY_INPUT_FILE".user-input <<EOF
y
n
EOF
# expected results
cat > "$MY_EXPECT_FILE".test1.txt <<EOF
aaa
bbb
ddd
eee
EOF
cat > "$MY_EXPECT_FILE".test2.txt <<EOF
eee
ddd
ccc
bbb
aaa
EOF
# Run 'interactive' patcher.
"${transform_command[@]}" -- grep -v ccc -- "$MY_INPUT_FILE".test*.txt < "$MY_INPUT_FILE".user-input
diff -u "$MY_EXPECT_FILE".test1.txt "$MY_INPUT_FILE".test1.txt || {
echo "Expected these files to match, but got the above diff."
exit 1
}
diff -u "$MY_EXPECT_FILE".test2.txt "$MY_INPUT_FILE".test2.txt || {
echo "Expected these files to match, but got the above diff."
exit 1
}
echo "PASS"