t1510: setup case #16
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Nguyễn Thái Ngọc Duy committed
Nov 26, 2010 at 22:32 UTC
af62cc1ba686dd94f5c0ca4181db00e1b8519af8
1 file changed
+135
t/t1510-repo-setup.sh
+135
@@ -2225,4 +2225,139 @@ EOF
2225
test_repo 15/sub/sub "$TRASH_DIRECTORY/15/.git" "$TRASH_DIRECTORY"
2226
'
2227
2228
+#
2229
+# case #16.1
2230
+#
2231
+############################################################
2232
+#
2233
+# Input:
2234
+#
2235
+# - GIT_WORK_TREE is not set
2236
+# - GIT_DIR is not set
2237
+# - core.worktree is not set
2238
+# - .git is a directory
2239
+# - cwd is inside .git
2240
+#
2241
+# Output:
2242
+#
2243
+# - no worktree
2244
+# - cwd is unchanged
2245
+# - prefix is NULL
2246
+# - git_dir is set
2247
+# - cwd can't be outside worktree
2248
+
2249
+test_expect_success '#16.1: setup' '
2250
+ unset GIT_DIR GIT_WORK_TREE &&
2251
+ mkdir 16 16/sub &&
2252
+ cd 16 &&
2253
+ git init &&
2254
+ mkdir .git/wt .git/wt/sub &&
2255
+ cd ..
2256
+'
2257
+
2258
+test_expect_success '#16.1: at .git' '
2259
+ cat >16/.git/expected <<EOF &&
2260
+setup: git_dir: .
2261
+setup: worktree: (null)
2262
+setup: cwd: $TRASH_DIRECTORY/16/.git
2263
+setup: prefix: (null)
2264
+EOF
2265
+ test_repo 16/.git
2266
+'
2267
+
2268
+test_expect_success '#16.1: in .git/wt' '
2269
+ cat >16/.git/wt/expected <<EOF &&
2270
+setup: git_dir: $TRASH_DIRECTORY/16/.git
2271
+setup: worktree: (null)
2272
+setup: cwd: $TRASH_DIRECTORY/16/.git/wt
2273
+setup: prefix: (null)
2274
+EOF
2275
+ test_repo 16/.git/wt
2276
+'
2277
+
2278
+test_expect_success '#16.1: in .git/wt/sub' '
2279
+ cat >16/.git/wt/sub/expected <<EOF &&
2280
+setup: git_dir: $TRASH_DIRECTORY/16/.git
2281
+setup: worktree: (null)
2282
+setup: cwd: $TRASH_DIRECTORY/16/.git/wt/sub
2283
+setup: prefix: (null)
2284
+EOF
2285
+ test_repo 16/.git/wt/sub
2286
+'
2287
+
2288
+#
2289
+# case #16.2
2290
+#
2291
+############################################################
2292
+#
2293
+# Input:
2294
+#
2295
+# - GIT_WORK_TREE is not set
2296
+# - GIT_DIR is not set
2297
+# - core.worktree is not set
2298
+# - .git is a directory
2299
+# - core.bare is set
2300
+#
2301
+# Output:
2302
+#
2303
+# - no worktree
2304
+# - cwd is unchanged
2305
+# - prefix is NULL
2306
+# - git_dir is set
2307
+# - cwd can't be outside worktree
2308
+
2309
+test_expect_success '#16.2: setup' '
2310
+ git config --file="$TRASH_DIRECTORY/16/.git/config" core.bare true
2311
+'
2312
+
2313
+test_expect_success '#16.2: at .git' '
2314
+ cat >16/.git/expected <<EOF &&
2315
+setup: git_dir: .
2316
+setup: worktree: (null)
2317
+setup: cwd: $TRASH_DIRECTORY/16/.git
2318
+setup: prefix: (null)
2319
+EOF
2320
+ test_repo 16/.git
2321
+'
2322
+
2323
+test_expect_success '#16.2: in .git/wt' '
2324
+ cat >16/.git/wt/expected <<EOF &&
2325
+setup: git_dir: $TRASH_DIRECTORY/16/.git
2326
+setup: worktree: (null)
2327
+setup: cwd: $TRASH_DIRECTORY/16/.git/wt
2328
+setup: prefix: (null)
2329
+EOF
2330
+ test_repo 16/.git/wt
2331
+'
2332
+
2333
+test_expect_success '#16.2: in .git/wt/sub' '
2334
+ cat >16/.git/wt/sub/expected <<EOF &&
2335
+setup: git_dir: $TRASH_DIRECTORY/16/.git
2336
+setup: worktree: (null)
2337
+setup: cwd: $TRASH_DIRECTORY/16/.git/wt/sub
2338
+setup: prefix: (null)
2339
+EOF
2340
+ test_repo 16/.git/wt/sub
2341
+'
2342
+
2343
+test_expect_success '#16.2: at root' '
2344
+ cat >16/expected <<EOF &&
2345
+setup: git_dir: .git
2346
+setup: worktree: (null)
2347
+setup: cwd: $TRASH_DIRECTORY/16
2348
+setup: prefix: (null)
2349
+EOF
2350
+ test_repo 16
2351
+'
2352
+
2353
+test_expect_failure '#16.2: in subdir' '
2354
+ cat >16/sub/expected <<EOF &&
2355
+setup: git_dir: $TRASH_DIRECTORY/16/.git
2356
+setup: worktree: (null)
2357
+setup: cwd: $TRASH_DIRECTORY/16/sub
2358
+setup: prefix: (null)
2359
+EOF
2360
+ test_repo 16/sub
2361
+'
2362
+
2363
test_done