diff mbox series

[v2] lib/tst_tmpdir: Add tst_default_rmdir() for old testcases

Message ID 20211122080138.55815-1-zhaogongyi@huawei.com
State Changes Requested
Headers show
Series [v2] lib/tst_tmpdir: Add tst_default_rmdir() for old testcases | expand

Commit Message

Zhao Gongyi Nov. 22, 2021, 8:01 a.m. UTC
In some old testcases, cleanup() will not run since it exit
form tst_brk. For example, because of the calling of ltp_syscall
have no real cleanup when syscall not support, testcase ssetmask01
will leave tmp file.

Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
---
v1->v2: add tst_default_rmdir() in tst_tmpdir.c

 lib/tst_tmpdir.c | 7 +++++++
 1 file changed, 7 insertions(+)

--
2.17.1

Comments

Cyril Hrubis Feb. 2, 2022, 4:07 p.m. UTC | #1
Hi!
> In some old testcases, cleanup() will not run since it exit
> form tst_brk. For example, because of the calling of ltp_syscall
> have no real cleanup when syscall not support, testcase ssetmask01
> will leave tmp file.

Actually you can pass cleanup to ltp_syscall(), all you need to do is
ti define CLEANUP before including LTP headers as:

#define CLEANUP cleanup

#include "test.h"
...
...

See the include/old/cleanup.c for details.

> Signed-off-by: Zhao Gongyi <zhaogongyi@huawei.com>
> ---
> v1->v2: add tst_default_rmdir() in tst_tmpdir.c
> 
>  lib/tst_tmpdir.c | 7 +++++++
>  1 file changed, 7 insertions(+)
> 
> diff --git a/lib/tst_tmpdir.c b/lib/tst_tmpdir.c
> index 6e38ae977..0045c7bb6 100644
> --- a/lib/tst_tmpdir.c
> +++ b/lib/tst_tmpdir.c
> @@ -342,6 +342,8 @@ void tst_rmdir(void)
>  		tst_resm(TWARN, "%s: rmobj(%s) failed: %s",
>  			 __func__, TESTDIR, errmsg);
>  	}
> +
> +	TESTDIR == NULL;

This is useless statement, it does literaly nothing.

>  }
> 
>  void tst_purge_dir(const char *path)
> @@ -351,3 +353,8 @@ void tst_purge_dir(const char *path)
>  	if (purge_dir(path, &err))
>  		tst_brkm(TBROK, NULL, "%s: %s", __func__, err);
>  }
> +
> +void __attribute__((destructor)) tst_default_rmdir(void)
> +{
> +	tst_rmdir();
> +}

I do not think that we should run the tst_rmdir() for all tests like
this.
diff mbox series

Patch

diff --git a/lib/tst_tmpdir.c b/lib/tst_tmpdir.c
index 6e38ae977..0045c7bb6 100644
--- a/lib/tst_tmpdir.c
+++ b/lib/tst_tmpdir.c
@@ -342,6 +342,8 @@  void tst_rmdir(void)
 		tst_resm(TWARN, "%s: rmobj(%s) failed: %s",
 			 __func__, TESTDIR, errmsg);
 	}
+
+	TESTDIR == NULL;
 }

 void tst_purge_dir(const char *path)
@@ -351,3 +353,8 @@  void tst_purge_dir(const char *path)
 	if (purge_dir(path, &err))
 		tst_brkm(TBROK, NULL, "%s: %s", __func__, err);
 }
+
+void __attribute__((destructor)) tst_default_rmdir(void)
+{
+	tst_rmdir();
+}