Hi!
> diff --git a/testcases/kernel/syscalls/open/open12.c
> b/testcases/kernel/syscalls/open/open12.c
> index 54ddfe0..f9be35b 100644
> --- a/testcases/kernel/syscalls/open/open12.c
> +++ b/testcases/kernel/syscalls/open/open12.c
> @@ -24,6 +24,7 @@
> #include <stdio.h>
> #include <sys/types.h>
> #include <sys/wait.h>
> +#include <sys/mount.h>
> #include <unistd.h>
> #include <mntent.h>
> #include <errno.h>
> @@ -34,8 +35,16 @@
> #define TEST_FILE "test_file"
> #define LARGE_FILE "large_file"
>
> +#define DIR_MODE 0755
> +#define MNTPOINT "mntpoint"
> +
> char *TCID = "open12";
>
> +static const char *device;
> +static const char *fs_type;
> +static unsigned int mount_flag = 0;
> +static unsigned int cd_flag = 0;
> +
> static void setup(void);
> static void cleanup(void);
> static void test_append(void);
> @@ -114,10 +123,21 @@ static void test_noatime(void)
> }
>
> if (tst_path_has_mnt_flags(cleanup, NULL, flags)) {
> - tst_resm(TCONF,
> - "test O_NOATIME flag for open needs filesystems which "
> - "is mounted without noatime and relatime");
> - return;
> +
> + fs_type = tst_dev_fs_type();
> + device = tst_acquire_device(cleanup);
> +
> + if (!device)
> + tst_brkm(TCONF, cleanup, "Failed to obtain block
> device");
> +
> + tst_mkfs(cleanup, device, fs_type, NULL);
> +
> + SAFE_MKDIR(cleanup, MNTPOINT, DIR_MODE);
What about creating a test directory in test temporary directory
unconditionally and change the TEST_FILE to point to a file in it? That
way we can just mount the loop device over the directory if needed and
avoid the ugly chdir here and in the cleanup.
> + SAFE_MOUNT(cleanup, device, MNTPOINT, fs_type, MS_STRICTATIME,
> NULL);
> + mount_flag = 1;
> + SAFE_FILE_PRINTF(cleanup, MNTPOINT"/"TEST_FILE, TEST_FILE);
> + SAFE_CHDIR(cleanup, MNTPOINT);
> + cd_flag = 1;
> }
>
> SAFE_STAT(cleanup, TEST_FILE, &old_stat);
> @@ -221,5 +241,18 @@ static void test_largefile(void)
>
> static void cleanup(void)
> {
> + if (cd_flag) {
> + char *tmp_dir = tst_get_tmpdir();
> + SAFE_CHDIR(NULL, tmp_dir);
> + free(tmp_dir);
> + }
> +
> + if (mount_flag && tst_umount(MNTPOINT) == -1) {
> + tst_brkm(TBROK | TERRNO, NULL, "umount(2) failed");
This should rather be tst_resm(TWARN | TERRNO, ...) so that we at least
attempt to continue the cleanup.
> + }
> +
> + if (device)
> + tst_release_device(NULL, device);
> +
> tst_rmdir();
--
Cyril Hrubis
[email protected]
------------------------------------------------------------------------------
One dashboard for servers and applications across Physical-Virtual-Cloud
Widest out-of-the-box monitoring support with 50+ applications
Performance metrics, stats and reports that give you Actionable Insights
Deep dive visibility with transaction tracing using APM Insight.
http://ad.doubleclick.net/ddm/clk/290420510;117567292;y
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list