| #!/bin/sh |
| |
| test_description='various @{whatever} syntax tests' |
| |
| TEST_PASSES_SANITIZE_LEAK=true |
| . ./test-lib.sh |
| |
| test_expect_success 'setup' ' |
| test_commit one && |
| test_commit two |
| ' |
| |
| check_at() { |
| echo "$2" >expect && |
| git log -1 --format=%s "$1" >actual && |
| test_cmp expect actual |
| } |
| |
| test_expect_success '@{0} shows current' ' |
| check_at @{0} two |
| ' |
| |
| test_expect_success '@{1} shows old' ' |
| check_at @{1} one |
| ' |
| |
| test_expect_success '@{now} shows current' ' |
| check_at @{now} two |
| ' |
| |
| test_expect_success '@{2001-09-17} (before the first commit) shows old' ' |
| check_at @{2001-09-17} one |
| ' |
| |
| test_expect_success 'silly approxidates work' ' |
| check_at @{3.hot.dogs.on.2001-09-17} one |
| ' |
| |
| test_expect_success 'notice misspelled upstream' ' |
| test_must_fail git log -1 --format=%s @{usptream} |
| ' |
| |
| test_expect_success 'complain about total nonsense' ' |
| test_must_fail git log -1 --format=%s @{utter.bogosity} |
| ' |
| |
| test_done |