diff --git a/hack/verify-flags/excluded-flags.txt b/hack/verify-flags/excluded-flags.txt index 0b31b008e62c0..018bc60d45ce6 100644 --- a/hack/verify-flags/excluded-flags.txt +++ b/hack/verify-flags/excluded-flags.txt @@ -24,3 +24,4 @@ up_to valid_flag retry_time file_content_in_loop +break_on_expected_content diff --git a/test/images/mount-tester-user/Dockerfile b/test/images/mount-tester-user/Dockerfile index b3cee3958d3ac..205fac659da99 100644 --- a/test/images/mount-tester-user/Dockerfile +++ b/test/images/mount-tester-user/Dockerfile @@ -12,5 +12,5 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM gcr.io/google_containers/mounttest:0.5 +FROM gcr.io/google_containers/mounttest:0.6 USER 1001 diff --git a/test/images/mount-tester-user/Makefile b/test/images/mount-tester-user/Makefile index 1288881bf38b4..72c58311a3838 100644 --- a/test/images/mount-tester-user/Makefile +++ b/test/images/mount-tester-user/Makefile @@ -1,4 +1,4 @@ -TAG = 0.3 +TAG = 0.4 PREFIX = gcr.io/google_containers all: push diff --git a/test/images/mount-tester/Makefile b/test/images/mount-tester/Makefile index 81ff72310d75b..d6c6185405e7a 100644 --- a/test/images/mount-tester/Makefile +++ b/test/images/mount-tester/Makefile @@ -1,4 +1,4 @@ -TAG = 0.5 +TAG = 0.6 PREFIX = gcr.io/google_containers all: push diff --git a/test/images/mount-tester/mt.go b/test/images/mount-tester/mt.go index 7b9a1e85e5625..4ade9a85d741a 100644 --- a/test/images/mount-tester/mt.go +++ b/test/images/mount-tester/mt.go @@ -37,6 +37,7 @@ var ( readFileContentPath = "" readFileContentInLoopPath = "" retryDuration = 180 + breakOnExpectedContent = true ) func init() { @@ -51,6 +52,7 @@ func init() { flag.StringVar(&readFileContentPath, "file_content", "", "Path to read the file content from") flag.StringVar(&readFileContentInLoopPath, "file_content_in_loop", "", "Path to read the file content in loop from") flag.IntVar(&retryDuration, "retry_time", 180, "Retry time during the loop") + flag.BoolVar(&breakOnExpectedContent, "break_on_expected_content", true, "Break out of loop on expected content, (use with --file_content_in_loop flag only)") } // This program performs some tests on the filesystem as dictated by the @@ -120,7 +122,7 @@ func main() { errs = append(errs, err) } - err = readFileContentInLoop(readFileContentInLoopPath, retryDuration) + err = readFileContentInLoop(readFileContentInLoopPath, retryDuration, breakOnExpectedContent) if err != nil { errs = append(errs, err) } @@ -217,13 +219,14 @@ func readFileContent(path string) error { return nil } +const initialContent string = "mount-tester new file\n" + func readWriteNewFile(path string, perm os.FileMode) error { if path == "" { return nil } - content := "mount-tester new file\n" - err := ioutil.WriteFile(path, []byte(content), perm) + err := ioutil.WriteFile(path, []byte(initialContent), perm) if err != nil { fmt.Printf("error writing new file %q: %v\n", path, err) return err @@ -232,19 +235,14 @@ func readWriteNewFile(path string, perm os.FileMode) error { return readFileContent(path) } -func readFileContentInLoop(path string, retryDuration int) error { +func readFileContentInLoop(path string, retryDuration int, breakOnExpectedContent bool) error { if path == "" { return nil } - var content []byte - content = testFileContent(path, retryDuration) - - fmt.Printf("content of file %q: %v\n", path, string(content)) - - return nil + return testFileContent(path, retryDuration, breakOnExpectedContent) } -func testFileContent(filePath string, retryDuration int) []byte { +func testFileContent(filePath string, retryDuration int, breakOnExpectedContent bool) error { var ( contentBytes []byte err error @@ -253,18 +251,18 @@ func testFileContent(filePath string, retryDuration int) []byte { retryTime := time.Second * time.Duration(retryDuration) for start := time.Now(); time.Since(start) < retryTime; time.Sleep(2 * time.Second) { contentBytes, err = ioutil.ReadFile(filePath) - if err == nil { - //Expected content "mount-tester new file\n", length 22 - if len(contentBytes) == 22 { - break - } else { - fmt.Printf("Unexpected length of file: found %d, expected %d.Retry", len(contentBytes), 22) + if err != nil { + fmt.Printf("Error reading file %s: %v, retrying\n", filePath, err) + continue + } + fmt.Printf("content of file %q: %v\n", filePath, string(contentBytes)) + if breakOnExpectedContent { + if string(contentBytes) != initialContent { + fmt.Printf("Unexpected content. Expected: %s. Retrying", initialContent) + continue } - } else { - fmt.Printf("Error read file %s: %v, retry", filePath, err) + break } - } - - return contentBytes + return err }