commit 1e1446d382398be679918a75e69163fb600fbab3 from: Stefan Sperling date: Sat Aug 03 14:40:32 2019 UTC test how 'got add' interacts with staged files commit - 244725f25f8754428aebce708d49d3ea834faf90 commit + 1e1446d382398be679918a75e69163fb600fbab3 blob - 5bce7df072be4dc184600315ef84e4729d5b5d1e blob + f23f8a050f7c15ae2e735c6ceabf32ace25b9d0c --- regress/cmdline/stage.sh +++ regress/cmdline/stage.sh @@ -124,5 +124,73 @@ function test_stage_status { } +function test_stage_add_already_staged_file { + local testroot=`test_init stage_add_already_staged_file` + + got checkout $testroot/repo $testroot/wt > /dev/null + ret="$?" + if [ "$ret" != "0" ]; then + test_done "$testroot" "$ret" + return 1 + fi + + echo "modified file" > $testroot/wt/alpha + (cd $testroot/wt && got rm beta > /dev/null) + echo "new file" > $testroot/wt/foo + (cd $testroot/wt && got add foo > /dev/null) + + (cd $testroot/wt && got stage alpha beta foo > $testroot/stdout) + + (cd $testroot/wt && got add beta \ + > $testroot/stdout 2> $testroot/stderr) + ret="$?" + if [ "$ret" == "0" ]; then + echo "got add command succeeded unexpectedly" >&2 + test_done "$testroot" "1" + return 1 + fi + echo "got: realpath: beta: No such file or directory" \ + > $testroot/stderr.expected + cmp -s $testroot/stderr.expected $testroot/stderr + ret="$?" + if [ "$ret" != "0" ]; then + diff -u $testroot/stderr.expected $testroot/stderr + test_done "$testroot" "$ret" + return 1 + fi + + echo -n > $testroot/stdout.expected + for f in alpha foo; do + (cd $testroot/wt && got add $f \ + > $testroot/stdout 2> $testroot/stderr) + ret="$?" + if [ "$ret" != "0" ]; then + echo "got add command failed unexpectedly" >&2 + test_done "$testroot" "1" + return 1 + fi + cmp -s $testroot/stdout.expected $testroot/stdout + ret="$?" + if [ "$ret" != "0" ]; then + diff -u $testroot/stdout.expected $testroot/stdout + test_done "$testroot" "$ret" + return 1 + fi + done + + echo ' M alpha' > $testroot/stdout.expected + echo ' D beta' >> $testroot/stdout.expected + echo ' A foo' >> $testroot/stdout.expected + + (cd $testroot/wt && got status > $testroot/stdout) + cmp -s $testroot/stdout.expected $testroot/stdout + ret="$?" + if [ "$ret" != "0" ]; then + diff -u $testroot/stdout.expected $testroot/stdout + fi + test_done "$testroot" "$ret" +} + run_test test_stage_basic run_test test_stage_status +run_test test_stage_add_already_staged_file