All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTP] [PATCH v4] Add stat04 test
@ 2024-02-22 15:36 Andrea Cervesato
  2024-02-22 23:36 ` Petr Vorel
  0 siblings, 1 reply; 6+ messages in thread
From: Andrea Cervesato @ 2024-02-22 15:36 UTC (permalink / raw)
  To: ltp

From: Andrea Cervesato <andrea.cervesato@suse.com>

This test has been extracted from symlink01 test and it checks that
stat() executed on file provide the same information of symlink linking
to it.

Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
---
free() tmpdir
rename link_stat into link
rename path_stat into path

 runtest/smoketest                         |  2 +-
 runtest/syscalls                          |  4 +-
 testcases/kernel/syscalls/stat/.gitignore |  2 +
 testcases/kernel/syscalls/stat/stat04.c   | 50 +++++++++++++++++++++++
 4 files changed, 55 insertions(+), 3 deletions(-)
 create mode 100644 testcases/kernel/syscalls/stat/stat04.c

diff --git a/runtest/smoketest b/runtest/smoketest
index 83eebfe7b..5608417f9 100644
--- a/runtest/smoketest
+++ b/runtest/smoketest
@@ -8,7 +8,7 @@ time01 time01
 wait02 wait02
 write01 write01
 symlink01 symlink01
-stat04 symlink01 -T stat04
+stat04 stat04
 utime01A symlink01 -T utime01
 rename01A symlink01 -T rename01
 splice02 splice02 -s 20
diff --git a/runtest/syscalls b/runtest/syscalls
index 7794f1465..ef90076e4 100644
--- a/runtest/syscalls
+++ b/runtest/syscalls
@@ -1529,8 +1529,8 @@ stat02 stat02
 stat02_64 stat02_64
 stat03 stat03
 stat03_64 stat03_64
-stat04 symlink01 -T stat04
-stat04_64 symlink01 -T stat04_64
+stat04 stat04
+stat04_64 stat04_64
 
 statfs01 statfs01
 statfs01_64 statfs01_64
diff --git a/testcases/kernel/syscalls/stat/.gitignore b/testcases/kernel/syscalls/stat/.gitignore
index fa0a4ce9f..0a62dc6ee 100644
--- a/testcases/kernel/syscalls/stat/.gitignore
+++ b/testcases/kernel/syscalls/stat/.gitignore
@@ -4,3 +4,5 @@
 /stat02_64
 /stat03
 /stat03_64
+/stat04
+/stat04_64
diff --git a/testcases/kernel/syscalls/stat/stat04.c b/testcases/kernel/syscalls/stat/stat04.c
new file mode 100644
index 000000000..aebfacf5a
--- /dev/null
+++ b/testcases/kernel/syscalls/stat/stat04.c
@@ -0,0 +1,50 @@
+// SPDX-License-Identifier: GPL-2.0-or-later
+/*
+ * Copyright (c) 2000 Silicon Graphics, Inc.  All Rights Reserved.
+ *    Author: David Fenner
+ *    Copilot: Jon Hendrickson
+ * Copyright (C) 2024 Andrea Cervesato <andrea.cervesato@suse.com>
+ */
+
+/*\
+ * [Description]
+ *
+ * This test checks that stat() executed on file provide the same information
+ * of symlink linking to it.
+ */
+
+#include <stdlib.h>
+#include "tst_test.h"
+
+static void run(void)
+{
+	char *symname = "my_symlink0";
+	char *tmpdir = tst_get_tmpdir();
+
+	SAFE_SYMLINK(tmpdir, symname);
+
+	struct stat path;
+	struct stat link;
+
+	TST_EXP_PASS(stat(tmpdir, &path));
+	free(tmpdir);
+
+	TST_EXP_PASS(stat(symname, &link));
+
+	TST_EXP_EQ_LI(path.st_dev, link.st_dev);
+	TST_EXP_EQ_LI(path.st_mode, link.st_mode);
+	TST_EXP_EQ_LI(path.st_nlink, link.st_nlink);
+	TST_EXP_EQ_LI(path.st_uid, link.st_uid);
+	TST_EXP_EQ_LI(path.st_gid, link.st_gid);
+	TST_EXP_EQ_LI(path.st_size, link.st_size);
+	TST_EXP_EQ_LI(path.st_atime, link.st_atime);
+	TST_EXP_EQ_LI(path.st_mtime, link.st_mtime);
+	TST_EXP_EQ_LI(path.st_ctime, link.st_ctime);
+
+	SAFE_UNLINK(symname);
+}
+
+static struct tst_test test = {
+	.test_all = run,
+	.needs_tmpdir = 1,
+};
-- 
2.35.3


-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2024-02-24  9:32 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-22 15:36 [LTP] [PATCH v4] Add stat04 test Andrea Cervesato
2024-02-22 23:36 ` Petr Vorel
2024-02-23 11:09   ` Cyril Hrubis
2024-02-23 12:29   ` Andrea Cervesato via ltp
2024-02-23 15:47     ` Petr Vorel
2024-02-24  9:32       ` Andrea Cervesato via ltp

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.