From 073315ef39b1e0590d50db1618c04227f5f58e47 Mon Sep 17 00:00:00 2001 From: Jakub Filak Date: Thu, 3 Nov 2016 15:26:19 +0100 Subject: [PATCH] testsuite: fix dd_open_item_file test There were a bug caused by the fact that an old deallocated FILE* variable was used instead of a new one. - fprintf(f_rdwr_time, "7654321"); - rewind(f_rdwr_noent); Signed-off-by: Jakub Filak --- tests/dump_dir.at | 82 +++++++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 38 deletions(-) diff --git a/tests/dump_dir.at b/tests/dump_dir.at index 78ea60d1..dc95e5b9 100644 --- a/tests/dump_dir.at +++ b/tests/dump_dir.at @@ -502,58 +502,64 @@ TS_MAIN TS_ASSERT_PTR_IS_NULL(dd_open_item_file(dd, "nofile", O_RDONLY)); - FILE *const f_rdwr_noent = dd_open_item_file(dd, "nofile", O_RDWR); - TS_ASSERT_PTR_IS_NOT_NULL(f_rdwr_noent); - if (g_testsuite_last_ok) { - fprintf(f_rdwr_noent, "%s", "f_rdwr_noent"); - rewind(f_rdwr_noent); + { + FILE *const f_rdwr_noent = dd_open_item_file(dd, "nofile", O_RDWR); + TS_ASSERT_PTR_IS_NOT_NULL(f_rdwr_noent); + if (g_testsuite_last_ok) { + fprintf(f_rdwr_noent, "%s", "f_rdwr_noent"); + rewind(f_rdwr_noent); - char rdwr_contents[256]; - TS_ASSERT_PTR_IS_NOT_NULL(fgets(rdwr_contents, sizeof(rdwr_contents), f_rdwr_noent)); - TS_ASSERT_STRING_EQ(rdwr_contents, "f_rdwr_noent", "Successfully read data"); - fclose(f_rdwr_noent); + char rdwr_contents[256]; + TS_ASSERT_PTR_IS_NOT_NULL(fgets(rdwr_contents, sizeof(rdwr_contents), f_rdwr_noent)); + TS_ASSERT_STRING_EQ(rdwr_contents, "f_rdwr_noent", "Successfully read data"); + fclose(f_rdwr_noent); - char *const noent_contents = dd_load_text(dd, "nofile"); - TS_ASSERT_STRING_EQ(noent_contents, "f_rdwr_noent", "Successfully wrote data"); - free(noent_contents); + char *const noent_contents = dd_load_text(dd, "nofile"); + TS_ASSERT_STRING_EQ(noent_contents, "f_rdwr_noent", "Successfully wrote data"); + free(noent_contents); + } } TS_ASSERT_PTR_IS_NULL(dd_open_item_file(dd, "time", O_RDONLY | O_EXCL)); - FILE *const f_rdonly_time = dd_open_item_file(dd, "time", O_RDONLY); - TS_ASSERT_PTR_IS_NOT_NULL(f_rdonly_time); - if (g_testsuite_last_ok) { - char *time = dd_load_text(dd, "time"); - TS_ASSERT_PTR_IS_NOT_NULL(time); - - char rdonly_time_contents[16]; - char *const res = fgets(rdonly_time_contents, sizeof(rdonly_time_contents), f_rdonly_time); - TS_ASSERT_PTR_EQ(rdonly_time_contents, res); + { + FILE *const f_rdonly_time = dd_open_item_file(dd, "time", O_RDONLY); + TS_ASSERT_PTR_IS_NOT_NULL(f_rdonly_time); if (g_testsuite_last_ok) { - TS_ASSERT_STRING_EQ(rdonly_time_contents, time, "Read only time"); - } - else { - TS_PRINTF("File 'time' read error: %s\n", strerror(errno)); + char *time = dd_load_text(dd, "time"); + TS_ASSERT_PTR_IS_NOT_NULL(time); + + char rdonly_time_contents[16]; + char *const res = fgets(rdonly_time_contents, sizeof(rdonly_time_contents), f_rdonly_time); + TS_ASSERT_PTR_EQ(rdonly_time_contents, res); + if (g_testsuite_last_ok) { + TS_ASSERT_STRING_EQ(rdonly_time_contents, time, "Read only time"); + } + else { + TS_PRINTF("File 'time' read error: %s\n", strerror(errno)); + } + fclose(f_rdonly_time); } - fclose(f_rdonly_time); } TS_ASSERT_PTR_IS_NULL(dd_open_item_file(dd, "time", O_RDWR | O_EXCL)); - FILE *const f_rdwr_time = dd_open_item_file(dd, "time", O_RDWR); - TS_ASSERT_PTR_IS_NOT_NULL(f_rdwr_time); - if (g_testsuite_last_ok) { - fprintf(f_rdwr_time, "7654321"); - rewind(f_rdwr_noent); + { + FILE *const f_rdwr_time = dd_open_item_file(dd, "time", O_RDWR); + TS_ASSERT_PTR_IS_NOT_NULL(f_rdwr_time); + if (g_testsuite_last_ok) { + fprintf(f_rdwr_time, "7654321"); + rewind(f_rdwr_time); - char rdwr_contents[256]; - TS_ASSERT_PTR_IS_NOT_NULL(fgets(rdwr_contents, sizeof(rdwr_contents), f_rdwr_noent)); - TS_ASSERT_STRING_EQ(rdwr_contents, "7654321", "Successfully read time data"); - fclose(f_rdwr_time); + char rdwr_contents[256]; + TS_ASSERT_PTR_IS_NOT_NULL(fgets(rdwr_contents, sizeof(rdwr_contents), f_rdwr_time)); + TS_ASSERT_STRING_EQ(rdwr_contents, "7654321", "Successfully read time data"); + fclose(f_rdwr_time); - char *const time_contents = dd_load_text(dd, "time"); - TS_ASSERT_STRING_EQ(time_contents, "7654321", "Successfully wrote time data"); - free(time_contents); + char *const time_contents = dd_load_text(dd, "time"); + TS_ASSERT_STRING_EQ(time_contents, "7654321", "Successfully wrote time data"); + free(time_contents); + } } testsuite_dump_dir_delete(dd); -- 2.17.2