Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

modifying readFileContentInLoop to display iteratively file content and eventually check initial content #15950

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
1 change: 1 addition & 0 deletions hack/verify-flags/excluded-flags.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,3 +24,4 @@ up_to
valid_flag
retry_time
file_content_in_loop
break_on_expected_content
2 changes: 1 addition & 1 deletion test/images/mount-tester-user/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -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
2 changes: 1 addition & 1 deletion test/images/mount-tester-user/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
TAG = 0.3
TAG = 0.4
PREFIX = gcr.io/google_containers

all: push
Expand Down
2 changes: 1 addition & 1 deletion test/images/mount-tester/Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
TAG = 0.5
TAG = 0.6
PREFIX = gcr.io/google_containers

all: push
Expand Down
42 changes: 20 additions & 22 deletions test/images/mount-tester/mt.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ var (
readFileContentPath = ""
readFileContentInLoopPath = ""
retryDuration = 180
breakOnExpectedContent = true
)

func init() {
Expand All @@ -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
Expand Down Expand Up @@ -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)
}
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -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
}