| #!/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 |