diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-07 19:33:14 +0000 |
commit | 36d22d82aa202bb199967e9512281e9a53db42c9 (patch) | |
tree | 105e8c98ddea1c1e4784a60a5a6410fa416be2de /security/nss/gtests/common/gtests.cc | |
parent | Initial commit. (diff) | |
download | firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip |
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'security/nss/gtests/common/gtests.cc')
-rw-r--r-- | security/nss/gtests/common/gtests.cc | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/security/nss/gtests/common/gtests.cc b/security/nss/gtests/common/gtests.cc new file mode 100644 index 0000000000..bacf391fc4 --- /dev/null +++ b/security/nss/gtests/common/gtests.cc @@ -0,0 +1,52 @@ +#include "nspr.h" +#include "nss.h" + +#include <cstdlib> + +#define GTEST_HAS_RTTI 0 +#include "gtest/gtest.h" + +// Tests are passed the location of their source directory +// so that they can load extra resources from there. +std::string g_source_dir; + +void usage(const char *progname) { + PR_fprintf(PR_STDERR, "Usage: %s [-s <dir>] [-d <dir> [-w]]\n", progname); + exit(2); +} + +int main(int argc, char **argv) { + ::testing::InitGoogleTest(&argc, argv); + + const char *workdir = ""; + uint32_t flags = NSS_INIT_READONLY; + + for (int i = 0; i < argc; i++) { + if (!strcmp(argv[i], "-s")) { + if (i + 1 >= argc) { + usage(argv[0]); + } + i++; + g_source_dir = argv[i]; + } else if (!strcmp(argv[i], "-d")) { + if (i + 1 >= argc) { + usage(argv[0]); + } + i++; + workdir = argv[i]; + } else if (!strcmp(argv[i], "-w")) { + flags &= ~NSS_INIT_READONLY; + } + } + + if (NSS_Initialize(workdir, "", "", SECMOD_DB, flags) != SECSuccess) { + return 1; + } + int rv = RUN_ALL_TESTS(); + + if (NSS_Shutdown() != SECSuccess) { + return 1; + } + + return rv; +} |