File: encode.t

package info (click to toggle)
git-subrepo 0.4.9-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 1,552 kB
  • sloc: sh: 7,074; makefile: 273; perl: 226
file content (91 lines) | stat: -rw-r--r-- 1,949 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/usr/bin/env bash

set -e

source test/setup

use Test::More

export round=0
test_round() {
  clone-foo-and-bar

  round=$(( round + 1 ))
  normalize_dir=$1
  normalize_dir=${normalize_dir#./}
  normalize_dir=${normalize_dir%/}
  while [[ $normalize_dir =~ (//+) ]]; do normalize_dir=${normalize_dir//${BASH_REMATCH[1]}/\/}; done

  clone_output=$(
    cd "$OWNER/foo"
    git subrepo clone "$UPSTREAM/bar" -- "$normalize_dir"
  )

  # Check output is correct:
  is "$clone_output" \
    "Subrepo '$UPSTREAM/bar' (master) cloned into '$normalize_dir'." \
    'subrepo clone command output is correct'

  test-exists "$OWNER/foo/$normalize_dir/"

  (
    cd "$OWNER/bar"
    git pull
    add-new-files Bar2-$round
    git push
  ) &> /dev/null || die

  # Do the pull and check output:
  {
    is "$(
       cd "$OWNER/foo"
       git subrepo pull -- "$normalize_dir"
       )" \
       "Subrepo '$normalize_dir' pulled from '$UPSTREAM/bar' (master)." \
       'subrepo pull command output is correct'
  }

  test-exists "$OWNER/foo/$normalize_dir/"

  (
    cd "$OWNER/foo/$normalize_dir"
    git pull
    add-new-files new-$round
    git push
  ) &> /dev/null || die

  # Do the push and check output:
  {
    is "$(
       cd "$OWNER/foo"
       git subrepo push -- "$normalize_dir"
       )" \
       "Subrepo '$normalize_dir' pushed to '$UPSTREAM/bar' (master)." \
       'subrepo push command output is correct'
  }
}

test_round normal
test_round .dot
test_round ......dots
test_round 'spa ce'
test_round 'per%cent'
test_round 'back-sl\as/h'
test_round 'end-with.lock'
# test_round '@'  # TODO Fix. This broke on recent git version...
test_round '@{'
test_round '['
test_round '-begin-with-minus'
test_round 'tailing-slash/'
test_round 'tailing-dots...'
test_round 'special-char:^[?*'
test_round 'many////slashes'
test_round '_under_scores_'

test_round '.str%a\nge...'
test_round ~'////......s:a^t?r a*n[g@{e.lock'


done_testing

teardown