12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- /*
- Copyright 2018 The Kubernetes Authors.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.apache.org/licenses/LICENSE-2.0
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- */
- package state
- import (
- "os"
- "path"
- "testing"
- "k8s.io/kubernetes/pkg/kubelet/checkpointmanager"
- "k8s.io/kubernetes/pkg/kubelet/cm/cpuset"
- )
- const compatibilityTestingCheckpoint = "cpumanager_state_compatibility_test"
- var state = &stateMemory{
- assignments: ContainerCPUAssignments{
- "container1": cpuset.NewCPUSet(4, 5, 6),
- "container2": cpuset.NewCPUSet(1, 2, 3),
- },
- defaultCPUSet: cpuset.NewCPUSet(1, 2, 3),
- }
- func TestFileToCheckpointCompatibility(t *testing.T) {
- statePath := path.Join(testingDir, compatibilityTestingCheckpoint)
- // ensure there is no previous state saved at testing path
- os.Remove(statePath)
- // ensure testing state is removed after testing
- defer os.Remove(statePath)
- fileState := NewFileState(statePath, "none")
- fileState.SetDefaultCPUSet(state.defaultCPUSet)
- fileState.SetCPUAssignments(state.assignments)
- restoredState, err := NewCheckpointState(testingDir, compatibilityTestingCheckpoint, "none")
- if err != nil {
- t.Fatalf("could not restore file state: %v", err)
- }
- AssertStateEqual(t, restoredState, state)
- }
- func TestCheckpointToFileCompatibility(t *testing.T) {
- cpm, err := checkpointmanager.NewCheckpointManager(testingDir)
- if err != nil {
- t.Fatalf("could not create testing checkpoint manager: %v", err)
- }
- // ensure there is no previous checkpoint
- cpm.RemoveCheckpoint(compatibilityTestingCheckpoint)
- // ensure testing checkpoint is removed after testing
- defer cpm.RemoveCheckpoint(compatibilityTestingCheckpoint)
- checkpointState, err := NewCheckpointState(testingDir, compatibilityTestingCheckpoint, "none")
- checkpointState.SetDefaultCPUSet(state.defaultCPUSet)
- checkpointState.SetCPUAssignments(state.assignments)
- restoredState := NewFileState(path.Join(testingDir, compatibilityTestingCheckpoint), "none")
- AssertStateEqual(t, restoredState, state)
- }
|