[LTP] [PATCH 1/2 v2] checkpoints: introduce TST_CHECKPOINT_CREATE

Jan Stancek
2014-10-06T14:55:30Z

Rename tst_checkpoint_init to tst_checkpoint_create.
Add tst_checkpoint_init, which only initializes checkpoint struct.
Update existing testcases to use TST_CHECKPOINT_CREATE.

Signed-off-by: Jan Stancek <jstancek@redhat.com>
---
include/tst_checkpoint.h | 10 ++++++++--
lib/tests/tst_checkpoint_child.c | 2 +-
lib/tests/tst_checkpoint_child_exits.c | 2 +-
lib/tests/tst_checkpoint_no_child.c | 2 +-
lib/tests/tst_checkpoint_parent.c | 2 +-
lib/tests/tst_checkpoint_parent_exits.c | 2 +-
lib/tst_checkpoint.c | 20 ++++++++++++++------
.../kernel/containers/mountns/mountns_helper.h | 4 ++--
testcases/kernel/syscalls/creat/creat07.c | 2 +-
testcases/kernel/syscalls/flock/flock03.c | 2 +-
testcases/kernel/syscalls/setpgid/setpgid03.c | 2 +-
testcases/kernel/syscalls/waitid/waitid02.c | 2 +-
12 files changed, 33 insertions(+), 19 deletions(-)

diff --git a/include/tst_checkpoint.h b/include/tst_checkpoint.h
index 4d04c0e..6ea3366 100644
--- a/include/tst_checkpoint.h
+++ b/include/tst_checkpoint.h
@@ -51,10 +51,16 @@ struct tst_checkpoint {
* Checkpoint initializaton, must be done first.
*/
#define TST_CHECKPOINT_INIT(self) \
- tst_checkpoint_init(__FILE__, __LINE__, self)
+ tst_checkpoint_init(__FILE__, __LINE__, self)

void tst_checkpoint_init(const char *file, const int lineno,
- struct tst_checkpoint *self);
+ struct tst_checkpoint *self);
+
+#define TST_CHECKPOINT_CREATE(self) \
+ tst_checkpoint_create(__FILE__, __LINE__, self)
+
+void tst_checkpoint_create(const char *file, const int lineno,
+ struct tst_checkpoint *self);

/*
* Wait called from parent. In case parent waits for child.
diff --git a/lib/tests/tst_checkpoint_child.c b/lib/tests/tst_checkpoint_child.c
index 9ce93f5..a13a9a2 100644
--- a/lib/tests/tst_checkpoint_child.c
+++ b/lib/tests/tst_checkpoint_child.c
@@ -35,7 +35,7 @@ int main(void)

tst_tmpdir();

- TST_CHECKPOINT_INIT(&checkpoint);
+ TST_CHECKPOINT_CREATE(&checkpoint);

pid = fork();

diff --git a/lib/tests/tst_checkpoint_child_exits.c b/lib/tests/tst_checkpoint_child_exits.c
index 3488ba2..d2e3f74 100644
--- a/lib/tests/tst_checkpoint_child_exits.c
+++ b/lib/tests/tst_checkpoint_child_exits.c
@@ -35,7 +35,7 @@ int main(void)

tst_tmpdir();

- TST_CHECKPOINT_INIT(&checkpoint);
+ TST_CHECKPOINT_CREATE(&checkpoint);

pid = fork();

diff --git a/lib/tests/tst_checkpoint_no_child.c b/lib/tests/tst_checkpoint_no_child.c
index fcf2745..2e72198 100644
--- a/lib/tests/tst_checkpoint_no_child.c
+++ b/lib/tests/tst_checkpoint_no_child.c
@@ -39,7 +39,7 @@ int main(void)

tst_tmpdir();

- TST_CHECKPOINT_INIT(&checkpoint);
+ TST_CHECKPOINT_CREATE(&checkpoint);
TST_CHECKPOINT_SIGNAL_CHILD(cleanup, &checkpoint);
fprintf(stderr, "Parent: checkpoint reached\n");

diff --git a/lib/tests/tst_checkpoint_parent.c b/lib/tests/tst_checkpoint_parent.c
index a2ae621..a42b37a 100644
--- a/lib/tests/tst_checkpoint_parent.c
+++ b/lib/tests/tst_checkpoint_parent.c
@@ -35,7 +35,7 @@ int main(void)

tst_tmpdir();

- TST_CHECKPOINT_INIT(&checkpoint);
+ TST_CHECKPOINT_CREATE(&checkpoint);

pid = fork();

diff --git a/lib/tests/tst_checkpoint_parent_exits.c b/lib/tests/tst_checkpoint_parent_exits.c
index 59c5356..3056c2c 100644
--- a/lib/tests/tst_checkpoint_parent_exits.c
+++ b/lib/tests/tst_checkpoint_parent_exits.c
@@ -35,7 +35,7 @@ int main(void)

tst_tmpdir();

- TST_CHECKPOINT_INIT(&checkpoint);
+ TST_CHECKPOINT_CREATE(&checkpoint);

pid = fork();

diff --git a/lib/tst_checkpoint.c b/lib/tst_checkpoint.c
index 7391a28..ebc379e 100644
--- a/lib/tst_checkpoint.c
+++ b/lib/tst_checkpoint.c
@@ -74,12 +74,6 @@ void tst_checkpoint_init(const char *file, const int lineno,
static unsigned int fifo_counter = 0;
int rval;

- if (!tst_tmpdir_created()) {
- tst_brkm(TBROK, NULL, "Checkpoint could be used only in test "
- "temporary directory at %s:%d",
- file, lineno);
- }
-
/* default values */
rval = snprintf(self->file, TST_FIFO_LEN, "tst_checkopoint_fifo_%u",
fifo_counter++);
@@ -90,6 +84,20 @@ void tst_checkpoint_init(const char *file, const int lineno,
}
self->retval = 1;
self->timeout = 5000;
+}
+
+void tst_checkpoint_create(const char *file, const int lineno,
+ struct tst_checkpoint *self)
+
+{
+
+ if (!tst_tmpdir_created()) {
+ tst_brkm(TBROK, NULL, "Checkpoint could be used only in test "
+ "temporary directory at %s:%d",
+ file, lineno);
+ }
+
+ tst_checkpoint_init(file, lineno, self);

if (mkfifo(self->file, 0666)) {
tst_brkm(TBROK | TERRNO, NULL,
diff --git a/testcases/kernel/containers/mountns/mountns_helper.h b/testcases/kernel/containers/mountns/mountns_helper.h
index cb9c16d..d4a6a91 100644
--- a/testcases/kernel/containers/mountns/mountns_helper.h
+++ b/testcases/kernel/containers/mountns/mountns_helper.h
@@ -57,8 +57,8 @@ static void setup(void)
tst_require_root(NULL);
check_newns();
tst_tmpdir();
- TST_CHECKPOINT_INIT(&checkpoint1);
- TST_CHECKPOINT_INIT(&checkpoint2);
+ TST_CHECKPOINT_CREATE(&checkpoint1);
+ TST_CHECKPOINT_CREATE(&checkpoint2);
SAFE_MKDIR(cleanup, DIRA, 0777);
SAFE_MKDIR(cleanup, DIRB, 0777);
SAFE_TOUCH(cleanup, DIRA"/A", 0, NULL);
diff --git a/testcases/kernel/syscalls/creat/creat07.c b/testcases/kernel/syscalls/creat/creat07.c
index a9f5253..4b8958f 100644
--- a/testcases/kernel/syscalls/creat/creat07.c
+++ b/testcases/kernel/syscalls/creat/creat07.c
@@ -108,7 +108,7 @@ static void setup(char *app)

TST_RESOURCE_COPY(cleanup, TEST_APP, NULL);

- TST_CHECKPOINT_INIT(&checkpoint);
+ TST_CHECKPOINT_CREATE(&checkpoint);

TEST_PAUSE;
}
diff --git a/testcases/kernel/syscalls/flock/flock03.c b/testcases/kernel/syscalls/flock/flock03.c
index b2734b5..446dc84 100644
--- a/testcases/kernel/syscalls/flock/flock03.c
+++ b/testcases/kernel/syscalls/flock/flock03.c
@@ -186,7 +186,7 @@ static void setup(void)

tst_tmpdir();

- TST_CHECKPOINT_INIT(&checkpoint);
+ TST_CHECKPOINT_CREATE(&checkpoint);

fd = creat(FILE_NAME, 0666);
if (fd < 0) {
diff --git a/testcases/kernel/syscalls/setpgid/setpgid03.c b/testcases/kernel/syscalls/setpgid/setpgid03.c
index a107c50..c1b9951 100644
--- a/testcases/kernel/syscalls/setpgid/setpgid03.c
+++ b/testcases/kernel/syscalls/setpgid/setpgid03.c
@@ -155,7 +155,7 @@ static void setup(void)

tst_tmpdir();

- TST_CHECKPOINT_INIT(&checkpoint);
+ TST_CHECKPOINT_CREATE(&checkpoint);
checkpoint.timeout = 10000;

umask(0);
diff --git a/testcases/kernel/syscalls/waitid/waitid02.c b/testcases/kernel/syscalls/waitid/waitid02.c
index 6259fa3..d497b6b 100644
--- a/testcases/kernel/syscalls/waitid/waitid02.c
+++ b/testcases/kernel/syscalls/waitid/waitid02.c
@@ -240,7 +240,7 @@ static void setup(void)
{
TEST_PAUSE;
tst_tmpdir();
- TST_CHECKPOINT_INIT(&checkpoint);
+ TST_CHECKPOINT_CREATE(&checkpoint);
}

static void cleanup(void)
--
1.7.1

------------------------------------------------------------------------------
Slashdot TV. Videos for Nerds. Stuff that Matters.