From b0ae4875f5dd7ce0b3ff998754307cb627415a86 Mon Sep 17 00:00:00 2001 From: Stephan Bosch <stephan.bosch@open-xchange.com> Date: Thu, 19 Sep 2024 21:12:55 +0200 Subject: [PATCH] testsuite: testsuite-script - Add testsuite_script_get_name() --- src/testsuite/testsuite-script.c | 28 ++++++++++++++++++++++++++++ src/testsuite/testsuite-script.h | 2 ++ 2 files changed, 30 insertions(+) diff --git a/src/testsuite/testsuite-script.c b/src/testsuite/testsuite-script.c index 7548f8128..102909cbb 100644 --- a/src/testsuite/testsuite-script.c +++ b/src/testsuite/testsuite-script.c @@ -31,6 +31,34 @@ void testsuite_script_deinit(void) { } +static const char *path_get_filename(const char *path) +{ + const char *filename; + + filename = strrchr(path, '/'); + if (filename == NULL) + filename = path; + else + filename++; + return filename; +} + +const char *testsuite_script_get_name(const char *path) +{ + const char *file, *ext; + + file = path_get_filename(path); + + /* Extract the script name */ + ext = strrchr(file, '.'); + if (ext == NULL || ext == file || + (strcmp(ext, ".svtest") != 0 && + strcmp(ext, "."SIEVE_SCRIPT_FILEEXT) != 0)) + return NULL; + + return t_strdup_until(file, ext); +} + static struct sieve_binary * _testsuite_script_compile(const struct sieve_runtime_env *renv, const char *script) diff --git a/src/testsuite/testsuite-script.h b/src/testsuite/testsuite-script.h index 547fdfc74..1bbab0aec 100644 --- a/src/testsuite/testsuite-script.h +++ b/src/testsuite/testsuite-script.h @@ -6,6 +6,8 @@ void testsuite_script_init(void); void testsuite_script_deinit(void); +const char *testsuite_script_get_name(const char *path); + bool testsuite_script_is_subtest(const struct sieve_runtime_env *renv); bool testsuite_script_compile(const struct sieve_runtime_env *renv, -- GitLab