// getSnapshotDir returns the path to the snapshot directory, // respecting the value of the "-remote" command-line flag. func getSnapshotDir() (string, error) { if remoteFlag { snapshotDir, err := project.RemoteSnapshotDir() if err != nil { return "", err } return snapshotDir, nil } snapshotDir, err := project.LocalSnapshotDir() if err != nil { return "", err } return snapshotDir, nil }
func TestList(t *testing.T) { ctx := tool.NewDefaultContext() // Setup a fake JIRI_ROOT. root, err := project.NewFakeJiriRoot(ctx) if err != nil { t.Fatalf("%v", err) } defer func() { if err := root.Cleanup(ctx); err != nil { t.Fatalf("%v", err) } }() oldRoot, err := project.JiriRoot() if err := os.Setenv("JIRI_ROOT", root.Dir); err != nil { t.Fatalf("%v", err) } defer os.Setenv("JIRI_ROOT", oldRoot) remoteSnapshotDir, err := project.RemoteSnapshotDir() if err != nil { t.Fatalf("%v", err) } localSnapshotDir, err := project.LocalSnapshotDir() if err != nil { t.Fatalf("%v", err) } // Create a test suite. tests := []config{ config{ remote: false, dir: localSnapshotDir, }, config{ remote: true, dir: remoteSnapshotDir, }, } labels := []label{ label{ name: "beta", snapshots: []string{"beta-1", "beta-2", "beta-3"}, }, label{ name: "stable", snapshots: []string{"stable-1", "stable-2", "stable-3"}, }, } for _, test := range tests { remoteFlag = test.remote // Create the snapshots directory and populate it with the // data specified by the test suite. for _, label := range labels { createLabelDir(t, ctx, test.dir, label.name, label.snapshots) } // Check that running "jiri snapshot list" with no arguments // returns the expected output. var stdout bytes.Buffer env := &cmdline.Env{Stdout: &stdout} if err != nil { t.Fatalf("%v", err) } if err := runSnapshotList(env, nil); err != nil { t.Fatalf("%v", err) } got, want := stdout.String(), generateOutput(labels) if got != want { t.Fatalf("unexpected output:\ngot\n%v\nwant\n%v\n", got, want) } // Check that running "jiri snapshot list" with one argument // returns the expected output. stdout.Reset() if err := runSnapshotList(env, []string{"stable"}); err != nil { t.Fatalf("%v", err) } got, want = stdout.String(), generateOutput(labels[1:]) if got != want { t.Fatalf("unexpected output:\ngot\n%v\nwant\n%v\n", got, want) } // Check that running "jiri snapshot list" with // multiple arguments returns the expected output. stdout.Reset() if err := runSnapshotList(env, []string{"beta", "stable"}); err != nil { t.Fatalf("%v", err) } got, want = stdout.String(), generateOutput(labels) if got != want { t.Fatalf("unexpected output:\ngot\n%v\nwant\n%v\n", got, want) } } }