package main

import (
	"bytes"
	"os"
	"path/filepath"
	"testing"

	"github.com/stretchr/testify/assert"
	"go.skia.org/infra/go/testutils"
)

func TestMain_DifferentFlags_ChangeOutput(t *testing.T) {

	testdataDir := testutils.TestDataDir(t)
	oldFile := filepath.Join(testdataDir, "nanobench_old.json")
	newFile := filepath.Join(testdataDir, "nanobench_new.json")

	// See the regenerate-testdata target in the Makefile to update these tests.
	check(t, "all", "--all", oldFile, newFile)
	check(t, "iqrr", "--iqrr", oldFile, newFile)
	check(t, "sort", "--sort=name", oldFile, newFile)
	check(t, "test", "--test=ttest", oldFile, newFile)
	check(t, "nochange", oldFile, oldFile)
}

// check a single run of nanotest with the given 'args'.
//
// name - the root name of the golden file and also the name of the sub-test.
func check(t *testing.T, name string, args ...string) {
	t.Run(name, func(t *testing.T) {
		os.Args = append([]string{"nanostat"}, args...)

		var stdout bytes.Buffer
		actualMain(&stdout)

		golden := testutils.ReadFile(t, name+".golden")
		assert.Equal(t, golden, stdout.String())
	})
}
