Files
kaniko/testutil/util.go
T
Christie Wilson 2fe93f2911 No longer try to verify kaniko dir isn't snapshotted
This test had previously (before #231) been making a change to a file in
the kaniko dir, then checking that it isn't being snapshotted. This was
to test the whitelisting logic, which makes sure that changes to /kaniko
aren't included in images. However the test creates a temporary dir, so
the kaniko dir is actually in /tmp/<some temp dir>/kaniko, and
in #231 the logic was simplified to no longer have a special case for
tests. The test continued to pass because `MaybeAdd` noticed that the
kaniko file wasn't changing, and didn't add it. After changing this to
always add the files, it revealed that this was left behind by accident.

I also opened #307 to add integration test coverage for this logic.

I also marked `CheckErrorAndDeepEqual` as a helper function so that when
it fails, the line number reported is where that was called.
2018-08-23 18:23:46 -07:00

69 lines
1.7 KiB
Go

/*
Copyright 2018 Google LLC
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 testutil
import (
"fmt"
"io/ioutil"
"os"
"path/filepath"
"reflect"
"testing"
)
// SetupFiles creates files at path
func SetupFiles(path string, files map[string]string) error {
for p, c := range files {
path := filepath.Join(path, p)
if err := os.MkdirAll(filepath.Dir(path), 0750); err != nil {
return err
}
if err := ioutil.WriteFile(path, []byte(c), 0644); err != nil {
return err
}
}
return nil
}
func CheckErrorAndDeepEqual(t *testing.T, shouldErr bool, err error, expected, actual interface{}) {
t.Helper()
if err := checkErr(shouldErr, err); err != nil {
t.Error(err)
return
}
if !reflect.DeepEqual(expected, actual) {
t.Errorf("%T differ.\nExpected\n%+v\nActual\n%+v", expected, expected, actual)
return
}
}
func CheckError(t *testing.T, shouldErr bool, err error) {
if err := checkErr(shouldErr, err); err != nil {
t.Error(err)
}
}
func checkErr(shouldErr bool, err error) error {
if err == nil && shouldErr {
return fmt.Errorf("Expected error, but returned none")
}
if err != nil && !shouldErr {
return fmt.Errorf("Unexpected error: %s", err)
}
return nil
}