t / t6101-rev-parse-parents.shon commit t5510: prepare test refs more straightforwardly (d0d06e8)
   1#!/bin/sh
   2#
   3# Copyright (c) 2005 Johannes Schindelin
   4#
   5
   6test_description='Test git rev-parse with different parent options'
   7
   8. ./test-lib.sh
   9
  10test_cmp_rev_output () {
  11        git rev-parse --verify "$1" >expect &&
  12        eval "$2" >actual &&
  13        test_cmp expect actual
  14}
  15
  16test_expect_success 'setup' '
  17        test_commit start &&
  18        test_commit second &&
  19        git checkout --orphan tmp &&
  20        test_commit start2 &&
  21        git checkout master &&
  22        git merge -m next start2 &&
  23        test_commit final
  24'
  25
  26test_expect_success 'start is valid' '
  27        git rev-parse start | grep "^[0-9a-f]\{40\}$"
  28'
  29
  30test_expect_success 'start^0' '
  31        test_cmp_rev_output tags/start "git rev-parse start^0"
  32'
  33
  34test_expect_success 'start^1 not valid' '
  35        test_must_fail git rev-parse --verify start^1
  36'
  37
  38test_expect_success 'second^1 = second^' '
  39        test_cmp_rev_output second^ "git rev-parse second^1"
  40'
  41
  42test_expect_success 'final^1^1^1' '
  43        test_cmp_rev_output start "git rev-parse final^1^1^1"
  44'
  45
  46test_expect_success 'final^1^1^1 = final^^^' '
  47        test_cmp_rev_output final^^^ "git rev-parse final^1^1^1"
  48'
  49
  50test_expect_success 'final^1^2' '
  51        test_cmp_rev_output start2 "git rev-parse final^1^2"
  52'
  53
  54test_expect_success 'final^1^2 != final^1^1' '
  55        test $(git rev-parse final^1^2) != $(git rev-parse final^1^1)
  56'
  57
  58test_expect_success 'final^1^3 not valid' '
  59        test_must_fail git rev-parse --verify final^1^3
  60'
  61
  62test_expect_success '--verify start2^1' '
  63        test_must_fail git rev-parse --verify start2^1
  64'
  65
  66test_expect_success '--verify start2^0' '
  67        git rev-parse --verify start2^0
  68'
  69
  70test_expect_success 'final^1^@ = final^1^1 final^1^2' '
  71        git rev-parse final^1^1 final^1^2 >expect &&
  72        git rev-parse final^1^@ >actual &&
  73        test_cmp expect actual
  74'
  75
  76test_expect_success 'final^1^! = final^1 ^final^1^1 ^final^1^2' '
  77        git rev-parse final^1 ^final^1^1 ^final^1^2 >expect &&
  78        git rev-parse final^1^! >actual &&
  79        test_cmp expect actual
  80'
  81
  82test_expect_success 'repack for next test' '
  83        git repack -a -d
  84'
  85
  86test_expect_success 'short SHA-1 works' '
  87        start=$(git rev-parse --verify start) &&
  88        test_cmp_rev_output start "git rev-parse ${start%?}"
  89'
  90
  91test_done