@@ -417,10 +417,7 @@ url_checksums:
417
417
stdout : `installed foo to` ,
418
418
})
419
419
wantBin := filepath .Join (runner .tmpDir , "bin" , "foo" )
420
- require .FileExists (t , wantBin )
421
- stat , err := os .Stat (wantBin )
422
- require .NoError (t , err )
423
- testutil .AssertExecutable (t , stat .Mode ())
420
+ testutil .AssertFile (t , wantBin , true , false )
424
421
})
425
422
426
423
t .Run ("link raw file" , func (t * testing.T ) {
@@ -441,11 +438,7 @@ url_checksums:
441
438
stdout : `installed foo to` ,
442
439
})
443
440
wantBin := filepath .Join (runner .tmpDir , "bin" , "foo" )
444
- require .FileExists (t , wantBin )
445
- stat , err := os .Lstat (wantBin )
446
- require .NoError (t , err )
447
- testutil .AssertExecutable (t , stat .Mode ())
448
- require .True (t , stat .Mode ()& os .ModeSymlink != 0 )
441
+ testutil .AssertFile (t , wantBin , true , true )
449
442
})
450
443
451
444
t .Run ("bin in root" , func (t * testing.T ) {
@@ -465,10 +458,7 @@ url_checksums:
465
458
stdout : `installed foo to` ,
466
459
})
467
460
wantBin := filepath .Join (runner .tmpDir , "bin" , "foo" )
468
- require .FileExists (t , wantBin )
469
- stat , err := os .Stat (wantBin )
470
- require .NoError (t , err )
471
- testutil .AssertExecutable (t , stat .Mode ())
461
+ testutil .AssertFile (t , wantBin , true , false )
472
462
})
473
463
474
464
t .Run ("wrong checksum" , func (t * testing.T ) {
@@ -491,29 +481,61 @@ url_checksums:
491
481
}
492
482
493
483
func Test_wrapCmd (t * testing.T ) {
494
- runner := newCmdRunner (t )
495
- servePath := testdataPath ("downloadables/runnable.tar.gz" )
496
- ts := testutil .ServeFile (t , servePath , "/runnable/runnable.tar.gz" , "" )
497
- depURL := ts .URL + "/runnable/runnable.tar.gz"
498
- runner .writeConfigYaml (fmt .Sprintf (`
484
+ t .Run ("bindown path" , func (t * testing.T ) {
485
+ runner := newCmdRunner (t )
486
+ servePath := testdataPath ("downloadables/runnable.tar.gz" )
487
+ ts := testutil .ServeFile (t , servePath , "/runnable/runnable.tar.gz" , "" )
488
+ depURL := ts .URL + "/runnable/runnable.tar.gz"
489
+ runner .writeConfigYaml (fmt .Sprintf (`
499
490
dependencies:
500
491
runnable:
501
492
archive_path: bin/runnable.sh
502
493
url: %s
503
494
url_checksums:
504
495
%s: fb2fe41a34b77ee180def0cb9a222d8776a6e581106009b64f35983da291ab6e
505
496
` , depURL , depURL ))
506
- outputDir := filepath .Join (runner .tmpDir , "output" )
507
- result := runner .run ("wrap" , "runnable" , "bindown" , "--bindown-tag" , "v4.10.0" , "--output" , outputDir )
508
- testutil .CheckGoldenDir (t , outputDir , filepath .FromSlash ("testdata/golden/wrap" ))
509
- wantRunnable := filepath .Join (outputDir , "runnable" )
510
- wantBindown := filepath .Join (outputDir , "bindown" )
511
- result .assertState (resultState {stdout : wantBindown + "\n " + wantRunnable })
512
- info , err := os .Stat (wantRunnable )
513
- require .NoError (t , err )
514
- testutil .AssertExecutable (t , info .Mode ())
515
- cmd := exec .Command ("sh" , "-c" , filepath .ToSlash (wantRunnable ))
516
- out , err := cmd .Output ()
517
- require .NoError (t , err )
518
- require .Equal (t , "Hello world" , strings .TrimSpace (string (out )))
497
+ outputDir := filepath .Join (runner .tmpDir , "output" )
498
+ runnable := filepath .Join (outputDir , "runnable" )
499
+ result := runner .run ("wrap" , "runnable" , "--bindown" , testutil .BindownBin (), "--output" , runnable )
500
+ result .assertState (resultState {stdout : runnable })
501
+ testutil .AssertFile (t , runnable , true , false )
502
+ testutil .CheckGoldenDir (t , outputDir , filepath .FromSlash ("testdata/golden/wrap/bindown-path" ))
503
+
504
+ // make sure it runs
505
+ cmd := exec .Command ("sh" , "-c" , filepath .ToSlash (runnable ))
506
+ out , err := cmd .Output ()
507
+ require .NoError (t , err )
508
+ require .Equal (t , "Hello world" , strings .TrimSpace (string (out )))
509
+ })
510
+
511
+ t .Run ("wrap bindown" , func (t * testing.T ) {
512
+ runner := newCmdRunner (t )
513
+ servePath := testdataPath ("downloadables/runnable.tar.gz" )
514
+ ts := testutil .ServeFiles (t , map [string ]string {
515
+ "/runnable/runnable.tar.gz" : servePath ,
516
+ "/WillAbides/bindown/releases/download/v4.8.0/checksums.txt" : "testdata/bootstrap/checksums.txt" ,
517
+ })
518
+ depURL := ts .URL + "/runnable/runnable.tar.gz"
519
+ runner .writeConfigYaml (fmt .Sprintf (`
520
+ dependencies:
521
+ runnable:
522
+ archive_path: bin/runnable.sh
523
+ url: %s
524
+ url_checksums:
525
+ %s: fb2fe41a34b77ee180def0cb9a222d8776a6e581106009b64f35983da291ab6e
526
+ ` , depURL , depURL ))
527
+ outputDir := filepath .Join (runner .tmpDir , "output" )
528
+ runnable := filepath .Join (outputDir , "runnable" )
529
+ bindown := filepath .Join (outputDir , "bindown" )
530
+ result := runner .run (
531
+ "wrap" , "runnable" , "bindown" ,
532
+ "--bindown-tag" , "v4.8.0" ,
533
+ "--output" , outputDir ,
534
+ "--base-url" , ts .URL ,
535
+ )
536
+ result .assertState (resultState {stdout : bindown + "\n " + runnable })
537
+ testutil .AssertFile (t , runnable , true , false )
538
+ testutil .AssertFile (t , bindown , true , false )
539
+ testutil .CheckGoldenDir (t , outputDir , filepath .FromSlash ("testdata/golden/wrap/wrap-bindown" ))
540
+ })
519
541
}
0 commit comments