github.com/openshift/source-to-image@v1.4.1-0.20240516041539-bf52fc02204e/pkg/build/strategies/onbuild/entrypoint_test.go (about) 1 package onbuild 2 3 import ( 4 "os" 5 "strings" 6 "testing" 7 8 testfs "github.com/openshift/source-to-image/pkg/test/fs" 9 "github.com/openshift/source-to-image/pkg/util/fs" 10 ) 11 12 func TestGuessEntrypoint(t *testing.T) { 13 14 testMatrix := map[string][]os.FileInfo{ 15 "run": { 16 &fs.FileInfo{FileName: "config.ru", FileIsDir: false, FileMode: 0600}, 17 &fs.FileInfo{FileName: "app.rb", FileIsDir: false, FileMode: 0600}, 18 &fs.FileInfo{FileName: "run", FileIsDir: false, FileMode: 0777}, 19 }, 20 "start.sh": { 21 &fs.FileInfo{FileName: "config.ru", FileIsDir: false, FileMode: 0600}, 22 &fs.FileInfo{FileName: "app.rb", FileIsDir: false, FileMode: 0600}, 23 &fs.FileInfo{FileName: "start.sh", FileIsDir: false, FileMode: 0777}, 24 }, 25 "execute": { 26 &fs.FileInfo{FileName: "config.ru", FileIsDir: false, FileMode: 0600}, 27 &fs.FileInfo{FileName: "app.rb", FileIsDir: false, FileMode: 0600}, 28 &fs.FileInfo{FileName: "execute", FileIsDir: false, FileMode: 0777}, 29 }, 30 "ERR:run_not_executable": { 31 &fs.FileInfo{FileName: "config.ru", FileIsDir: false, FileMode: 0600}, 32 &fs.FileInfo{FileName: "app.rb", FileIsDir: false, FileMode: 0600}, 33 &fs.FileInfo{FileName: "run", FileIsDir: false, FileMode: 0600}, 34 }, 35 "ERR:run_is_dir": { 36 &fs.FileInfo{FileName: "config.ru", FileIsDir: false, FileMode: 0600}, 37 &fs.FileInfo{FileName: "app.rb", FileIsDir: false, FileMode: 0600}, 38 &fs.FileInfo{FileName: "run", FileIsDir: true, FileMode: 0777}, 39 }, 40 "ERR:none": { 41 &fs.FileInfo{FileName: "config.ru", FileIsDir: false, FileMode: 0600}, 42 &fs.FileInfo{FileName: "app.rb", FileIsDir: false, FileMode: 0600}, 43 }, 44 } 45 46 for expectedEntrypoint, files := range testMatrix { 47 f := &testfs.FakeFileSystem{Files: files} 48 result, err := GuessEntrypoint(f, "/test") 49 50 if strings.HasPrefix(expectedEntrypoint, "ERR:") { 51 if len(result) > 0 { 52 t.Errorf("Expected error for %s, got %s", expectedEntrypoint, result) 53 } 54 continue 55 } 56 57 if err != nil { 58 t.Errorf("[%s] %s", expectedEntrypoint, err) 59 } 60 if result != expectedEntrypoint { 61 t.Errorf("Expected '%s' entrypoint, got '%v'", expectedEntrypoint, result) 62 } 63 } 64 }