blob: 33965a4c682b088b8dd2487085c327eda8120090 [file] [log] [blame]
package gpuconfig
import (
"context"
"log"
"testing"
"time"
"cos.googlesource.com/cos/tools.git/src/pkg/fakes"
"github.com/google/go-cmp/cmp"
"google.golang.org/protobuf/testing/protocmp"
)
func TestReadConfig(t *testing.T) {
ctx := context.Background()
gcs := fakes.GCSForTest(t)
defer gcs.Close()
gcs.Objects = map[string][]byte{
"/cos-gpu-configs-test/2022-10-07T01:36:07-4ed7213e/config.textproto": testConfigFileContents,
"/cos-gpu-configs-test/2022-10-07T01:36:07-4ed7213e/metadata": testMetadataContents,
}
want := testConfig
got, err := ReadConfig(ctx, gcs.Client, "gs://cos-gpu-configs-test/2022-10-07T01:36:07-4ed7213e/")
if err != nil {
log.Fatalf("ReadConfig() failed:%v\n", err)
}
if diff := cmp.Diff(got, want, protocmp.Transform()); diff != "" {
t.Errorf("ReadConfig() returned unexpected difference (-want, got):\n%s", diff)
}
}
func TestReadConfigs(t *testing.T) {
ctx := context.Background()
gcs := fakes.GCSForTest(t)
defer gcs.Close()
gcs.Objects = map[string][]byte{
"/cos-gpu-configs-test/2022-10-05T05:51:44-0bf111fe/config.textproto": []byte(""), // file not read
"/cos-gpu-configs-test/2022-10-05T05:51:44-0bf111fe/metadata": []byte(""), // file not read
"/cos-gpu-configs-test/2022-10-06T13:46:00-269200f5/config.textproto": []byte(""), // file not read
"/cos-gpu-configs-test/2022-10-06T13:46:00-269200f5/metadata": []byte(""), // file not read
"/cos-gpu-configs-test/2022-10-07T01:29:43-e9b4b850/config.textproto": testConfigFileContents,
"/cos-gpu-configs-test/2022-10-07T01:29:43-e9b4b850/metadata": testMetadataContents,
}
timeNow = func() time.Time { return time.Date(2022, time.October, 10, 0, 0, 0, 0, time.UTC) }
// read configs from [2022-10-10 to 2022-10-10 minus 3 days]
got, err := ReadConfigs(ctx, gcs.Client, "cos-gpu-configs-test", 3, "kernel")
if err != nil {
log.Fatalf("ReadConfigs() failed:%v\n", err)
}
if diff := cmp.Diff(got, []GPUPrecompilationConfig{testConfig}, protocmp.Transform()); diff != "" {
t.Errorf("ReadConfigs() returned unexpected difference (-want, got):\n%s", diff)
}
}