[Openmp-commits] [openmp] [OpenMP] Add libomp unit test infrastructure (PR #168063)
Jan Patrick Lehr via Openmp-commits
openmp-commits at lists.llvm.org
Wed Dec 17 02:46:28 PST 2025
================
@@ -0,0 +1,239 @@
+//===- TestKmpStr.cpp - Tests for kmp_str utilities ----------------------===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
+//
+//===----------------------------------------------------------------------===//
+
+#include "kmp_str.h"
+#include "gtest/gtest.h"
+#include <cstring>
+
+namespace {
+
+// Test basic string buffer initialization
+TEST(KmpStrTest, BufferInit) {
+ kmp_str_buf_t buffer;
+ __kmp_str_buf_init(&buffer);
+
+ EXPECT_NE(buffer.str, nullptr);
+ EXPECT_GT(buffer.size, 0u);
+ EXPECT_EQ(buffer.used, 0);
+ EXPECT_EQ(buffer.str[0], '\0');
+}
+
+// Test string buffer clear
+TEST(KmpStrTest, BufferClear) {
+ kmp_str_buf_t buffer;
+ __kmp_str_buf_init(&buffer);
+ __kmp_str_buf_print(&buffer, "test string");
+
+ EXPECT_GT(buffer.used, 0);
+
+ __kmp_str_buf_clear(&buffer);
+ EXPECT_EQ(buffer.used, 0);
+ EXPECT_EQ(buffer.str[0], '\0');
+
+ __kmp_str_buf_free(&buffer);
+}
+
+// Test string buffer print
+TEST(KmpStrTest, BufferPrint) {
+ kmp_str_buf_t buffer;
+ __kmp_str_buf_init(&buffer);
+
+ __kmp_str_buf_print(&buffer, "Hello, %s!", "World");
+
+ EXPECT_STREQ(buffer.str, "Hello, World!");
+ EXPECT_EQ(buffer.used, 13);
+
+ __kmp_str_buf_free(&buffer);
+}
+
+// Test string buffer concatenation
+TEST(KmpStrTest, BufferCat) {
+ kmp_str_buf_t buffer;
+ __kmp_str_buf_init(&buffer);
+
+ __kmp_str_buf_cat(&buffer, "Hello", 5);
+ __kmp_str_buf_cat(&buffer, " ", 1);
+ __kmp_str_buf_cat(&buffer, "World", 5);
+
+ EXPECT_STREQ(buffer.str, "Hello World");
+
+ __kmp_str_buf_free(&buffer);
+}
+
+// Test string buffer reservation
+TEST(KmpStrTest, BufferReserve) {
+ kmp_str_buf_t buffer;
+ __kmp_str_buf_init(&buffer);
+
+ size_t large_size = 2048;
+ __kmp_str_buf_reserve(&buffer, large_size);
+
+ EXPECT_GE(buffer.size, large_size);
+
+ __kmp_str_buf_free(&buffer);
+}
+
+// Test basic string to int conversion
+TEST(KmpStrTest, BasicStrToInt) {
----------------
jplehr wrote:
Should we have "negative" tests here to test what happens when the string is not an int?
https://github.com/llvm/llvm-project/pull/168063
More information about the Openmp-commits
mailing list