// TestMetrics tests that MetricProvider methods return sane values. func TestMetrics(t *testing.T) { // Create an empty temp directory for the volume tmpDir, err := ioutil.TempDir(os.TempDir(), "host_path_test") if err != nil { t.Fatalf("Can't make a tmp dir: %v", err) } defer os.RemoveAll(tmpDir) plugMgr := volume.VolumePluginMgr{} plugMgr.InitPlugins(ProbeVolumePlugins(volume.VolumeConfig{}), volume.NewFakeVolumeHost(tmpDir, nil, nil)) plug, err := plugMgr.FindPluginByName("kubernetes.io/host-path") if err != nil { t.Errorf("Can't find the plugin by name") } spec := &api.Volume{ Name: "vol1", VolumeSource: api.VolumeSource{HostPath: &api.HostPathVolumeSource{Path: tmpDir}}, } pod := &api.Pod{ObjectMeta: api.ObjectMeta{UID: types.UID("poduid")}} builder, err := plug.NewBuilder(volume.NewSpecFromVolume(spec), pod, volume.VolumeOptions{}) if err != nil { t.Errorf("Failed to make a new Builder: %v", err) } expectedEmptyDirUsage, err := volume.FindEmptyDirectoryUsageOnTmpfs() if err != nil { t.Errorf("Unexpected error finding expected empty directory usage on tmpfs: %v", err) } metrics, err := builder.GetMetrics() if err != nil { t.Errorf("Unexpected error when calling GetMetrics %v", err) } if e, a := expectedEmptyDirUsage.Value(), metrics.Used.Value(); e != a { t.Errorf("Unexpected value for empty directory; expected %v, got %v", e, a) } if metrics.Capacity.Value() <= 0 { t.Errorf("Expected Capacity to be greater than 0") } if metrics.Available.Value() <= 0 { t.Errorf("Expected Available to be greater than 0") } }
// TestMetrics tests that MetricProvider methods return sane values. func TestMetrics(t *testing.T) { // Create an empty temp directory for the volume tmpDir, err := utiltesting.MkTmpdir("empty_dir_test") if err != nil { t.Fatalf("Can't make a tmp dir: %v", err) } defer os.RemoveAll(tmpDir) plug := makePluginUnderTest(t, "kubernetes.io/empty-dir", tmpDir) spec := &api.Volume{ Name: "vol1", } pod := &api.Pod{ObjectMeta: api.ObjectMeta{UID: types.UID("poduid")}} builder, err := plug.NewBuilder(volume.NewSpecFromVolume(spec), pod, volume.VolumeOptions{RootContext: ""}) if err != nil { t.Errorf("Failed to make a new Builder: %v", err) } // Need to create the subdirectory os.MkdirAll(builder.GetPath(), 0755) expectedEmptyDirUsage, err := volume.FindEmptyDirectoryUsageOnTmpfs() if err != nil { t.Errorf("Unexpected error finding expected empty directory usage on tmpfs: %v", err) } // TODO(pwittroc): Move this into a reusable testing utility metrics, err := builder.GetMetrics() if err != nil { t.Errorf("Unexpected error when calling GetMetrics %v", err) } if e, a := expectedEmptyDirUsage.Value(), metrics.Used.Value(); e != a { t.Errorf("Unexpected value for empty directory; expected %v, got %v", e, a) } if metrics.Capacity.Value() <= 0 { t.Errorf("Expected Capacity to be greater than 0") } if metrics.Available.Value() <= 0 { t.Errorf("Expected Available to be greater than 0") } }