t / t7300-clean.shon commit Deprecate git-lost-found (fc8b5f0)
   1#!/bin/sh
   2#
   3# Copyright (c) 2007 Michael Spang
   4#
   5
   6test_description='git-clean basic tests'
   7
   8. ./test-lib.sh
   9
  10test_expect_success 'setup' '
  11
  12        mkdir -p src &&
  13        touch src/part1.c Makefile &&
  14        echo build >.gitignore &&
  15        echo \*.o >>.gitignore &&
  16        git add . &&
  17        git-commit -m setup &&
  18        touch src/part2.c README &&
  19        git add .
  20
  21'
  22
  23test_expect_success 'git-clean' '
  24
  25        mkdir -p build docs &&
  26        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
  27        git-clean &&
  28        test -f Makefile &&
  29        test -f README &&
  30        test -f src/part1.c &&
  31        test -f src/part2.c &&
  32        test ! -f a.out &&
  33        test ! -f src/part3.c &&
  34        test -f docs/manual.txt &&
  35        test -f obj.o &&
  36        test -f build/lib.so
  37
  38'
  39
  40test_expect_success 'git-clean src/' '
  41
  42        mkdir -p build docs &&
  43        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
  44        git-clean src/ &&
  45        test -f Makefile &&
  46        test -f README &&
  47        test -f src/part1.c &&
  48        test -f src/part2.c &&
  49        test -f a.out &&
  50        test ! -f src/part3.c &&
  51        test -f docs/manual.txt &&
  52        test -f obj.o &&
  53        test -f build/lib.so
  54
  55'
  56
  57test_expect_success 'git-clean src/ src/' '
  58
  59        mkdir -p build docs &&
  60        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
  61        git-clean src/ src/ &&
  62        test -f Makefile &&
  63        test -f README &&
  64        test -f src/part1.c &&
  65        test -f src/part2.c &&
  66        test -f a.out &&
  67        test ! -f src/part3.c &&
  68        test -f docs/manual.txt &&
  69        test -f obj.o &&
  70        test -f build/lib.so
  71
  72'
  73
  74test_expect_success 'git-clean with prefix' '
  75
  76        mkdir -p build docs &&
  77        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
  78        (cd src/ && git-clean) &&
  79        test -f Makefile &&
  80        test -f README &&
  81        test -f src/part1.c &&
  82        test -f src/part2.c &&
  83        test -f a.out &&
  84        test ! -f src/part3.c &&
  85        test -f docs/manual.txt &&
  86        test -f obj.o &&
  87        test -f build/lib.so
  88
  89'
  90test_expect_success 'git-clean -d with prefix and path' '
  91
  92        mkdir -p build docs src/feature &&
  93        touch a.out src/part3.c src/feature/file.c docs/manual.txt obj.o build/lib.so &&
  94        (cd src/ && git-clean -d feature/) &&
  95        test -f Makefile &&
  96        test -f README &&
  97        test -f src/part1.c &&
  98        test -f src/part2.c &&
  99        test -f a.out &&
 100        test -f src/part3.c &&
 101        test ! -f src/feature/file.c &&
 102        test -f docs/manual.txt &&
 103        test -f obj.o &&
 104        test -f build/lib.so
 105
 106'
 107
 108test_expect_success 'git-clean symbolic link' '
 109
 110        mkdir -p build docs &&
 111        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
 112        ln -s docs/manual.txt src/part4.c
 113        git-clean &&
 114        test -f Makefile &&
 115        test -f README &&
 116        test -f src/part1.c &&
 117        test -f src/part2.c &&
 118        test ! -f a.out &&
 119        test ! -f src/part3.c &&
 120        test ! -f src/part4.c &&
 121        test -f docs/manual.txt &&
 122        test -f obj.o &&
 123        test -f build/lib.so
 124
 125'
 126
 127test_expect_success 'git-clean -n' '
 128
 129        mkdir -p build docs &&
 130        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
 131        git-clean -n &&
 132        test -f Makefile &&
 133        test -f README &&
 134        test -f src/part1.c &&
 135        test -f src/part2.c &&
 136        test -f a.out &&
 137        test -f src/part3.c &&
 138        test -f docs/manual.txt &&
 139        test -f obj.o &&
 140        test -f build/lib.so
 141
 142'
 143
 144test_expect_success 'git-clean -d' '
 145
 146        mkdir -p build docs &&
 147        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
 148        git-clean -d &&
 149        test -f Makefile &&
 150        test -f README &&
 151        test -f src/part1.c &&
 152        test -f src/part2.c &&
 153        test ! -f a.out &&
 154        test ! -f src/part3.c &&
 155        test ! -d docs &&
 156        test -f obj.o &&
 157        test -f build/lib.so
 158
 159'
 160
 161test_expect_success 'git-clean -d src/ examples/' '
 162
 163        mkdir -p build docs examples &&
 164        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so examples/1.c &&
 165        git-clean -d src/ examples/ &&
 166        test -f Makefile &&
 167        test -f README &&
 168        test -f src/part1.c &&
 169        test -f src/part2.c &&
 170        test -f a.out &&
 171        test ! -f src/part3.c &&
 172        test ! -f examples/1.c &&
 173        test -f docs/manual.txt &&
 174        test -f obj.o &&
 175        test -f build/lib.so
 176
 177'
 178
 179test_expect_success 'git-clean -x' '
 180
 181        mkdir -p build docs &&
 182        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
 183        git-clean -x &&
 184        test -f Makefile &&
 185        test -f README &&
 186        test -f src/part1.c &&
 187        test -f src/part2.c &&
 188        test ! -f a.out &&
 189        test ! -f src/part3.c &&
 190        test -f docs/manual.txt &&
 191        test ! -f obj.o &&
 192        test -f build/lib.so
 193
 194'
 195
 196test_expect_success 'git-clean -d -x' '
 197
 198        mkdir -p build docs &&
 199        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
 200        git-clean -d -x &&
 201        test -f Makefile &&
 202        test -f README &&
 203        test -f src/part1.c &&
 204        test -f src/part2.c &&
 205        test ! -f a.out &&
 206        test ! -f src/part3.c &&
 207        test ! -d docs &&
 208        test ! -f obj.o &&
 209        test ! -d build
 210
 211'
 212
 213test_expect_success 'git-clean -X' '
 214
 215        mkdir -p build docs &&
 216        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
 217        git-clean -X &&
 218        test -f Makefile &&
 219        test -f README &&
 220        test -f src/part1.c &&
 221        test -f src/part2.c &&
 222        test -f a.out &&
 223        test -f src/part3.c &&
 224        test -f docs/manual.txt &&
 225        test ! -f obj.o &&
 226        test -f build/lib.so
 227
 228'
 229
 230test_expect_success 'git-clean -d -X' '
 231
 232        mkdir -p build docs &&
 233        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
 234        git-clean -d -X &&
 235        test -f Makefile &&
 236        test -f README &&
 237        test -f src/part1.c &&
 238        test -f src/part2.c &&
 239        test -f a.out &&
 240        test -f src/part3.c &&
 241        test -f docs/manual.txt &&
 242        test ! -f obj.o &&
 243        test ! -d build
 244
 245'
 246
 247test_expect_success 'clean.requireForce' '
 248
 249        git config clean.requireForce true &&
 250        ! git-clean
 251
 252'
 253
 254test_expect_success 'clean.requireForce and -n' '
 255
 256        mkdir -p build docs &&
 257        touch a.out src/part3.c docs/manual.txt obj.o build/lib.so &&
 258        git-clean -n &&
 259        test -f Makefile &&
 260        test -f README &&
 261        test -f src/part1.c &&
 262        test -f src/part2.c &&
 263        test -f a.out &&
 264        test -f src/part3.c &&
 265        test -f docs/manual.txt &&
 266        test -f obj.o &&
 267        test -f build/lib.so
 268
 269'
 270
 271test_expect_success 'clean.requireForce and -f' '
 272
 273        git-clean -f &&
 274        test -f README &&
 275        test -f src/part1.c &&
 276        test -f src/part2.c &&
 277        test ! -f a.out &&
 278        test ! -f src/part3.c &&
 279        test -f docs/manual.txt &&
 280        test -f obj.o &&
 281        test -f build/lib.so
 282
 283'
 284
 285test_done