From e5ecff253a4cbdc5443f58f8aed83af2f441748c Mon Sep 17 00:00:00 2001 From: Sachin T Date: Tue, 5 May 2026 21:32:35 +0530 Subject: [PATCH 1/2] Add Instrumentation macro --- include/stdlib.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/stdlib.h b/include/stdlib.h index b3cdf611..a39471e1 100644 --- a/include/stdlib.h +++ b/include/stdlib.h @@ -33,11 +33,13 @@ __Z_EXPORT int __mkstemp_ascii(char*); #define realpath __realpath_replaced #undef mkstemp #define mkstemp __mkstemp_replaced +#ifdef ZOSLIB_INSTRUMENTATION #undef malloc #define malloc __malloc_replaced #undef free #define free __free_replaced #endif +#endif // LE fix since posix_memalign is exposed in 2.5 #if (__TARGET_LIB__ < 0x43010000) @@ -74,8 +76,10 @@ extern "C" { */ #undef realpath __Z_EXPORT char *realpath(const char * __restrict__, char * __restrict__) __asm("__realpath_extended"); +#ifdef ZOSLIB_INSTRUMENTATION __Z_EXPORT void* malloc(size_t size) __THROW __asm("__zoslib_malloc") ; __Z_EXPORT void free(void* ptr) __THROW __asm("__zoslib_free") ; +#endif #ifdef __NATIVE_ASCII_F /** From 8763a6b01517f4646e683aafe9690777868c31f8 Mon Sep 17 00:00:00 2001 From: Sachin T Date: Tue, 5 May 2026 21:36:09 +0530 Subject: [PATCH 2/2] Delete test-writev.cc --- test/test-writev.cc | 96 --------------------------------------------- 1 file changed, 96 deletions(-) delete mode 100644 test/test-writev.cc diff --git a/test/test-writev.cc b/test/test-writev.cc deleted file mode 100644 index f1659ce4..00000000 --- a/test/test-writev.cc +++ /dev/null @@ -1,96 +0,0 @@ -#define ZOSLIB_OVERRIDE_CLIB 1 - -#include "zos.h" -#include -#include -#include -#include -#include -#include - -static const char *ascii[] = {"A", - "AB", - "Hello, World!", - "0123456789", - "the quick brown fox jumps over the lazy dog", - "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG"}; -#pragma convert("IBM-1047") -static const char *ebcdic[] = {"A", - "AB", - "Hello, World!", - "0123456789", - "the quick brown fox jumps over the lazy dog", - "THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG"}; -#pragma convert(pop) - -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0])) - -class WritevTest : public ::testing::Test { -protected: - void tagFile(int fd, int ccsid) { - __setfdccsid(fd, ccsid); - } - - void SetUp() override { - ASSERT_EQ(openpty(&master_fd, &slave_fd, NULL, NULL, NULL), 0) << "Failed to open pseudo-terminal"; - } - - void TearDown() override { - close(master_fd); - close(slave_fd); - } -protected: - int master_fd, slave_fd; -}; - -// This tests the writev function when ASCII data is passed. -TEST_F(WritevTest, AsciiDataWrite) { - struct iovec iov[6]; - size_t total_len = 0; - - for (int i = 0; i < sizeof(ascii) / sizeof(ascii[0]); ++i) { - iov[i].iov_base = (void*)ascii[i]; - iov[i].iov_len = strlen(ascii[i]); - total_len += iov[i].iov_len; - } - - ssize_t result = writev(slave_fd, iov, 6); - ASSERT_EQ(result, (ssize_t)total_len); - - char buffer[1024] = {0}; - ssize_t read_bytes = read(master_fd, buffer, sizeof(buffer) - 1); - ASSERT_GT(read_bytes, 0); - - size_t offset = 0; - for (size_t i = 0; i < ARRAY_SIZE(ascii); i++) { - size_t len = strlen(ascii[i]); - ASSERT_EQ(memcmp(buffer + offset, ascii[i], len), 0); - offset += len; - } -} - -// This tests the writev function when EBCDIC data is passed. -TEST_F(WritevTest, EbcdicDataWrite) { - struct iovec iov[6]; - size_t total_len = 0; - - for (int i = 0; i < sizeof(ebcdic) / sizeof(ebcdic[0]); ++i) { - iov[i].iov_base = (void*)ebcdic[i]; - iov[i].iov_len = strlen(ebcdic[i]); - total_len += iov[i].iov_len; - } - - ssize_t result = writev(slave_fd, iov, 6); - ASSERT_EQ(result, (ssize_t)total_len); - - char buffer[1024] = {0}; - ssize_t read_bytes = read(master_fd, buffer, sizeof(buffer) - 1); - ASSERT_GT(read_bytes, 0); - - size_t offset = 0; - for (size_t i = 0; i < ARRAY_SIZE(ebcdic); i++) { - size_t len = strlen(ebcdic[i]); - ASSERT_EQ(memcmp(buffer + offset, ebcdic[i], len), 0); - offset += len; - } -}