|  | #!/bin/sh | 
|  |  | 
|  | test_description='various @{whatever} syntax tests' | 
|  | . ./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 |