From 4b4aad7217d3292650e77eec2cf4c198ea9c3b4b Mon Sep 17 00:00:00 2001 From: Jiyoung Yun Date: Wed, 23 Nov 2016 19:09:09 +0900 Subject: Imported Upstream version 1.1.0 --- .../palsuite/c_runtime/vprintf/CMakeLists.txt | 23 +++ .../c_runtime/vprintf/test1/CMakeLists.txt | 19 ++ .../tests/palsuite/c_runtime/vprintf/test1/test1.c | 43 +++++ .../palsuite/c_runtime/vprintf/test1/testinfo.dat | 12 ++ .../c_runtime/vprintf/test10/CMakeLists.txt | 19 ++ .../palsuite/c_runtime/vprintf/test10/test10.c | 52 ++++++ .../palsuite/c_runtime/vprintf/test10/testinfo.dat | 12 ++ .../c_runtime/vprintf/test11/CMakeLists.txt | 19 ++ .../palsuite/c_runtime/vprintf/test11/test11.c | 51 ++++++ .../palsuite/c_runtime/vprintf/test11/testinfo.dat | 12 ++ .../c_runtime/vprintf/test12/CMakeLists.txt | 19 ++ .../palsuite/c_runtime/vprintf/test12/test12.c | 53 ++++++ .../palsuite/c_runtime/vprintf/test12/testinfo.dat | 12 ++ .../c_runtime/vprintf/test13/CMakeLists.txt | 19 ++ .../palsuite/c_runtime/vprintf/test13/test13.c | 54 ++++++ .../palsuite/c_runtime/vprintf/test13/testinfo.dat | 12 ++ .../c_runtime/vprintf/test14/CMakeLists.txt | 19 ++ .../palsuite/c_runtime/vprintf/test14/test14.c | 54 ++++++ .../palsuite/c_runtime/vprintf/test14/testinfo.dat | 12 ++ .../c_runtime/vprintf/test15/CMakeLists.txt | 19 ++ .../palsuite/c_runtime/vprintf/test15/test15.c | 54 ++++++ .../palsuite/c_runtime/vprintf/test15/testinfo.dat | 12 ++ .../c_runtime/vprintf/test16/CMakeLists.txt | 19 ++ .../palsuite/c_runtime/vprintf/test16/test16.c | 50 ++++++ .../palsuite/c_runtime/vprintf/test16/testinfo.dat | 12 ++ .../c_runtime/vprintf/test17/CMakeLists.txt | 19 ++ .../palsuite/c_runtime/vprintf/test17/test17.c | 52 ++++++ .../palsuite/c_runtime/vprintf/test17/testinfo.dat | 12 ++ .../c_runtime/vprintf/test18/CMakeLists.txt | 19 ++ .../palsuite/c_runtime/vprintf/test18/test18.c | 51 ++++++ .../palsuite/c_runtime/vprintf/test18/testinfo.dat | 12 ++ .../c_runtime/vprintf/test19/CMakeLists.txt | 19 ++ .../palsuite/c_runtime/vprintf/test19/test19.c | 76 ++++++++ .../palsuite/c_runtime/vprintf/test19/testinfo.dat | 12 ++ .../c_runtime/vprintf/test2/CMakeLists.txt | 19 ++ .../tests/palsuite/c_runtime/vprintf/test2/test2.c | 45 +++++ .../palsuite/c_runtime/vprintf/test2/testinfo.dat | 12 ++ .../c_runtime/vprintf/test3/CMakeLists.txt | 19 ++ .../tests/palsuite/c_runtime/vprintf/test3/test3.c | 45 +++++ .../palsuite/c_runtime/vprintf/test3/testinfo.dat | 12 ++ .../c_runtime/vprintf/test4/CMakeLists.txt | 19 ++ .../tests/palsuite/c_runtime/vprintf/test4/test4.c | 70 ++++++++ .../palsuite/c_runtime/vprintf/test4/testinfo.dat | 12 ++ .../c_runtime/vprintf/test5/CMakeLists.txt | 19 ++ .../tests/palsuite/c_runtime/vprintf/test5/test5.c | 60 +++++++ .../palsuite/c_runtime/vprintf/test5/testinfo.dat | 12 ++ .../c_runtime/vprintf/test6/CMakeLists.txt | 19 ++ .../tests/palsuite/c_runtime/vprintf/test6/test6.c | 48 +++++ .../palsuite/c_runtime/vprintf/test6/testinfo.dat | 12 ++ .../c_runtime/vprintf/test7/CMakeLists.txt | 19 ++ .../tests/palsuite/c_runtime/vprintf/test7/test7.c | 47 +++++ .../palsuite/c_runtime/vprintf/test7/testinfo.dat | 12 ++ .../c_runtime/vprintf/test8/CMakeLists.txt | 19 ++ .../tests/palsuite/c_runtime/vprintf/test8/test8.c | 53 ++++++ .../palsuite/c_runtime/vprintf/test8/testinfo.dat | 12 ++ .../c_runtime/vprintf/test9/CMakeLists.txt | 19 ++ .../tests/palsuite/c_runtime/vprintf/test9/test9.c | 53 ++++++ .../palsuite/c_runtime/vprintf/test9/testinfo.dat | 12 ++ src/pal/tests/palsuite/c_runtime/vprintf/vprintf.h | 193 +++++++++++++++++++++ 59 files changed, 1816 insertions(+) create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test1/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test1/test1.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test1/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test10/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test10/test10.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test10/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test11/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test11/test11.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test11/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test12/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test12/test12.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test12/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test13/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test13/test13.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test13/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test14/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test14/test14.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test14/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test15/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test15/test15.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test15/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test16/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test16/test16.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test16/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test17/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test17/test17.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test17/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test18/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test18/test18.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test18/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test19/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test19/test19.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test19/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test2/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test2/test2.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test2/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test3/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test3/test3.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test3/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test4/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test4/test4.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test4/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test5/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test5/test5.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test5/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test6/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test6/test6.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test6/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test7/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test7/test7.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test7/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test8/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test8/test8.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test8/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test9/CMakeLists.txt create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test9/test9.c create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/test9/testinfo.dat create mode 100644 src/pal/tests/palsuite/c_runtime/vprintf/vprintf.h (limited to 'src/pal/tests/palsuite/c_runtime/vprintf') diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/CMakeLists.txt new file mode 100644 index 0000000000..c7e7647ea9 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/CMakeLists.txt @@ -0,0 +1,23 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +# This test fails to build on ARM +#add_subdirectory(test1) +add_subdirectory(test10) +add_subdirectory(test11) +add_subdirectory(test12) +add_subdirectory(test13) +add_subdirectory(test14) +add_subdirectory(test15) +add_subdirectory(test16) +add_subdirectory(test17) +add_subdirectory(test18) +add_subdirectory(test19) +add_subdirectory(test2) +add_subdirectory(test3) +add_subdirectory(test4) +add_subdirectory(test5) +add_subdirectory(test6) +add_subdirectory(test7) +add_subdirectory(test8) +add_subdirectory(test9) + diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test1/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test1/CMakeLists.txt new file mode 100644 index 0000000000..eabdf87393 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test1/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test1.c +) + +add_executable(paltest_vprintf_test1 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test1 coreclrpal) + +target_link_libraries(paltest_vprintf_test1 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test1/test1.c b/src/pal/tests/palsuite/c_runtime/vprintf/test1/test1.c new file mode 100644 index 0000000000..404d7a0dc9 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test1/test1.c @@ -0,0 +1,43 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test1.c +** +** Purpose: Test #1 for the vprintf function. A single, basic, test +** case with no formatting. +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + +int __cdecl main(int argc, char *argv[]) +{ + char checkstr[] = "hello world"; + int ret; + + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + ret = vprintf("hello world", NULL); + + if (ret != strlen(checkstr)) + { + Fail("Expected vprintf to return %d, got %d.\n", + strlen(checkstr), ret); + + } + + PAL_Terminate(); + return PASS; +} + diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test1/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test1/testinfo.dat new file mode 100644 index 0000000000..ac5de86341 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test1/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test1 +Description += General test to see if vprintf works correctly diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test10/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test10/CMakeLists.txt new file mode 100644 index 0000000000..47a21d909a --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test10/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test10.c +) + +add_executable(paltest_vprintf_test10 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test10 coreclrpal) + +target_link_libraries(paltest_vprintf_test10 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test10/test10.c b/src/pal/tests/palsuite/c_runtime/vprintf/test10/test10.c new file mode 100644 index 0000000000..b363d7c02c --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test10/test10.c @@ -0,0 +1,52 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test10.c +** +** Purpose: Test #10 for the vprintf function. Tests the octal specifier +** (%o). +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + + +int __cdecl main(int argc, char *argv[]) +{ + int neg = -42; + int pos = 42; + INT64 l = 42; + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + + DoNumTest("foo %o", pos, "foo 52"); + DoNumTest("foo %lo", 0xFFFF, "foo 177777"); + DoNumTest("foo %ho", 0xFFFF, "foo 177777"); + DoNumTest("foo %Lo", pos, "foo 52"); + DoI64Test("foo %I64o", l, "42", "foo 52"); + DoNumTest("foo %3o", pos, "foo 52"); + DoNumTest("foo %-3o", pos, "foo 52 "); + DoNumTest("foo %.1o", pos, "foo 52"); + DoNumTest("foo %.3o", pos, "foo 052"); + DoNumTest("foo %03o", pos, "foo 052"); + DoNumTest("foo %#o", pos, "foo 052"); + DoNumTest("foo %+o", pos, "foo 52"); + DoNumTest("foo % o", pos, "foo 52"); + DoNumTest("foo %+o", neg, "foo 37777777726"); + DoNumTest("foo % o", neg, "foo 37777777726"); + + PAL_Terminate(); + return PASS; +} + diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test10/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test10/testinfo.dat new file mode 100644 index 0000000000..4494024300 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test10/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test10 +Description += Tests vprintf with octal numbers diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test11/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test11/CMakeLists.txt new file mode 100644 index 0000000000..4c750b72ac --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test11/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test11.c +) + +add_executable(paltest_vprintf_test11 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test11 coreclrpal) + +target_link_libraries(paltest_vprintf_test11 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test11/test11.c b/src/pal/tests/palsuite/c_runtime/vprintf/test11/test11.c new file mode 100644 index 0000000000..f5157ac99f --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test11/test11.c @@ -0,0 +1,51 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test11.c +** +** Purpose: Test #11 for the vprintf function. Test the unsigned int +** specifier (%u). +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + +int __cdecl main(int argc, char *argv[]) +{ + int neg = -42; + int pos = 42; + INT64 l = 42; + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + + DoNumTest("foo %u", pos, "foo 42"); + DoNumTest("foo %lu", 0xFFFF, "foo 65535"); + DoNumTest("foo %hu", 0xFFFF, "foo 65535"); + DoNumTest("foo %Lu", pos, "foo 42"); + DoI64Test("foo %I64u", l, "42", "foo 42"); + DoNumTest("foo %3u", pos, "foo 42"); + DoNumTest("foo %-3u", pos, "foo 42 "); + DoNumTest("foo %.1u", pos, "foo 42"); + DoNumTest("foo %.3u", pos, "foo 042"); + DoNumTest("foo %03u", pos, "foo 042"); + DoNumTest("foo %#u", pos, "foo 42"); + DoNumTest("foo %+u", pos, "foo 42"); + DoNumTest("foo % u", pos, "foo 42"); + DoNumTest("foo %+u", neg, "foo 4294967254"); + DoNumTest("foo % u", neg, "foo 4294967254"); + + PAL_Terminate(); + return PASS; +} + diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test11/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test11/testinfo.dat new file mode 100644 index 0000000000..c504c70e88 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test11/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test11 +Description += Tests vprintf with unsigned numbers diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test12/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test12/CMakeLists.txt new file mode 100644 index 0000000000..1feb886fc1 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test12/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test12.c +) + +add_executable(paltest_vprintf_test12 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test12 coreclrpal) + +target_link_libraries(paltest_vprintf_test12 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test12/test12.c b/src/pal/tests/palsuite/c_runtime/vprintf/test12/test12.c new file mode 100644 index 0000000000..703a8c4fdc --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test12/test12.c @@ -0,0 +1,53 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test12.c +** +** Purpose: Test #12 for the vprintf function. Tests the (lowercase) +** hexadecimal specifier (%x) +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + + +int __cdecl main(int argc, char *argv[]) +{ + int neg = -42; + int pos = 0x1234ab; + INT64 l = I64(0x1234567887654321); + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + + DoNumTest("foo %x", pos, "foo 1234ab"); + DoNumTest("foo %lx", pos, "foo 1234ab"); + DoNumTest("foo %hx", pos, "foo 34ab"); + DoNumTest("foo %Lx", pos, "foo 1234ab"); + DoI64Test("foo %I64x", l, "0x1234567887654321", + "foo 1234567887654321"); + DoNumTest("foo %7x", pos, "foo 1234ab"); + DoNumTest("foo %-7x", pos, "foo 1234ab "); + DoNumTest("foo %.1x", pos, "foo 1234ab"); + DoNumTest("foo %.7x", pos, "foo 01234ab"); + DoNumTest("foo %07x", pos, "foo 01234ab"); + DoNumTest("foo %#x", pos, "foo 0x1234ab"); + DoNumTest("foo %+x", pos, "foo 1234ab"); + DoNumTest("foo % x", pos, "foo 1234ab"); + DoNumTest("foo %+x", neg, "foo ffffffd6"); + DoNumTest("foo % x", neg, "foo ffffffd6"); + + PAL_Terminate(); + return PASS; +} + diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test12/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test12/testinfo.dat new file mode 100644 index 0000000000..558ce37c8b --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test12/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test12 +Description += Tests vprintf with hex numbers (lowercase) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test13/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test13/CMakeLists.txt new file mode 100644 index 0000000000..cd7535a1ad --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test13/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test13.c +) + +add_executable(paltest_vprintf_test13 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test13 coreclrpal) + +target_link_libraries(paltest_vprintf_test13 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test13/test13.c b/src/pal/tests/palsuite/c_runtime/vprintf/test13/test13.c new file mode 100644 index 0000000000..ecb83ba38d --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test13/test13.c @@ -0,0 +1,54 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test13.c +** +** Purpose: Test #13 for the vprintf function. Tests the (uppercase) +** hexadecimal specifier (%X) +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + + + +int __cdecl main(int argc, char *argv[]) +{ + int neg = -42; + int pos = 0x1234AB; + INT64 l = I64(0x1234567887654321); + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + + DoNumTest("foo %X", pos, "foo 1234AB"); + DoNumTest("foo %lX", pos, "foo 1234AB"); + DoNumTest("foo %hX", pos, "foo 34AB"); + DoNumTest("foo %LX", pos, "foo 1234AB"); + DoI64Test("foo %I64X", l, "0x1234567887654321", + "foo 1234567887654321"); + DoNumTest("foo %7X", pos, "foo 1234AB"); + DoNumTest("foo %-7X", pos, "foo 1234AB "); + DoNumTest("foo %.1X", pos, "foo 1234AB"); + DoNumTest("foo %.7X", pos, "foo 01234AB"); + DoNumTest("foo %07X", pos, "foo 01234AB"); + DoNumTest("foo %#X", pos, "foo 0X1234AB"); + DoNumTest("foo %+X", pos, "foo 1234AB"); + DoNumTest("foo % X", pos, "foo 1234AB"); + DoNumTest("foo %+X", neg, "foo FFFFFFD6"); + DoNumTest("foo % X", neg, "foo FFFFFFD6"); + + PAL_Terminate(); + return PASS; +} + diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test13/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test13/testinfo.dat new file mode 100644 index 0000000000..33822958dd --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test13/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test13 +Description += Tests vprintf with hex numbers (uppercase) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test14/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test14/CMakeLists.txt new file mode 100644 index 0000000000..82cfd68ecf --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test14/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test14.c +) + +add_executable(paltest_vprintf_test14 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test14 coreclrpal) + +target_link_libraries(paltest_vprintf_test14 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test14/test14.c b/src/pal/tests/palsuite/c_runtime/vprintf/test14/test14.c new file mode 100644 index 0000000000..536c1950e3 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test14/test14.c @@ -0,0 +1,54 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test14.c +** +** Purpose: Test #14 for the vprintf function. Tests the lowercase +** exponential notation double specifier (%e) +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + + + +int __cdecl main(int argc, char *argv[]) +{ + double val = 256.0; + double neg = -256.0; + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + + DoDoubleTest("foo %e", val, "foo 2.560000e+002", "foo 2.560000e+02"); + DoDoubleTest("foo %le", val, "foo 2.560000e+002", "foo 2.560000e+02"); + DoDoubleTest("foo %he", val, "foo 2.560000e+002", "foo 2.560000e+02"); + DoDoubleTest("foo %Le", val, "foo 2.560000e+002", "foo 2.560000e+02"); + DoDoubleTest("foo %I64e", val, "foo 2.560000e+002", "foo 2.560000e+02"); + DoDoubleTest("foo %14e", val, "foo 2.560000e+002", "foo 2.560000e+02"); + DoDoubleTest("foo %-14e", val, "foo 2.560000e+002 ", + "foo 2.560000e+02 "); + DoDoubleTest("foo %.1e", val, "foo 2.6e+002", "foo 2.6e+02"); + DoDoubleTest("foo %.8e", val, "foo 2.56000000e+002", + "foo 2.56000000e+02"); + DoDoubleTest("foo %014e", val, "foo 02.560000e+002", + "foo 002.560000e+02"); + DoDoubleTest("foo %#e", val, "foo 2.560000e+002", "foo 2.560000e+02"); + DoDoubleTest("foo %+e", val, "foo +2.560000e+002", "foo +2.560000e+02"); + DoDoubleTest("foo % e", val, "foo 2.560000e+002", "foo 2.560000e+02"); + DoDoubleTest("foo %+e", neg, "foo -2.560000e+002", "foo -2.560000e+02"); + DoDoubleTest("foo % e", neg, "foo -2.560000e+002", "foo -2.560000e+02"); + + PAL_Terminate(); + return PASS; +} diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test14/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test14/testinfo.dat new file mode 100644 index 0000000000..d2633fca43 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test14/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test14 +Description += Tests vprintf with exponential format doubles (lowercase) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test15/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test15/CMakeLists.txt new file mode 100644 index 0000000000..29a134d48c --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test15/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test15.c +) + +add_executable(paltest_vprintf_test15 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test15 coreclrpal) + +target_link_libraries(paltest_vprintf_test15 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test15/test15.c b/src/pal/tests/palsuite/c_runtime/vprintf/test15/test15.c new file mode 100644 index 0000000000..9aff6e457d --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test15/test15.c @@ -0,0 +1,54 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test15.c +** +** Purpose: Test #15 for the vprintf function. Tests the uppercase +** exponential notation double specifier (%E) +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + + + +int __cdecl main(int argc, char *argv[]) +{ + double val = 256.0; + double neg = -256.0; + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + + DoDoubleTest("foo %E", val, "foo 2.560000E+002", "foo 2.560000E+02"); + DoDoubleTest("foo %lE", val, "foo 2.560000E+002", "foo 2.560000E+02"); + DoDoubleTest("foo %hE", val, "foo 2.560000E+002", "foo 2.560000E+02"); + DoDoubleTest("foo %LE", val, "foo 2.560000E+002", "foo 2.560000E+02"); + DoDoubleTest("foo %I64E", val, "foo 2.560000E+002", "foo 2.560000E+02"); + DoDoubleTest("foo %14E", val, "foo 2.560000E+002", "foo 2.560000E+02"); + DoDoubleTest("foo %-14E", val, "foo 2.560000E+002 ", + "foo 2.560000E+02 "); + DoDoubleTest("foo %.1E", val, "foo 2.6E+002", "foo 2.6E+02"); + DoDoubleTest("foo %.8E", val, "foo 2.56000000E+002", + "foo 2.56000000E+02"); + DoDoubleTest("foo %014E", val, "foo 02.560000E+002", + "foo 002.560000E+02"); + DoDoubleTest("foo %#E", val, "foo 2.560000E+002", "foo 2.560000E+02"); + DoDoubleTest("foo %+E", val, "foo +2.560000E+002", "foo +2.560000E+02"); + DoDoubleTest("foo % E", val, "foo 2.560000E+002", "foo 2.560000E+02"); + DoDoubleTest("foo %+E", neg, "foo -2.560000E+002", "foo -2.560000E+02"); + DoDoubleTest("foo % E", neg, "foo -2.560000E+002", "foo -2.560000E+02"); + + PAL_Terminate(); + return PASS; +} diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test15/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test15/testinfo.dat new file mode 100644 index 0000000000..c1e00520a7 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test15/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test15 +Description += Tests vprintf with exponential format doubles (uppercase) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test16/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test16/CMakeLists.txt new file mode 100644 index 0000000000..7fbf43ac84 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test16/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test16.c +) + +add_executable(paltest_vprintf_test16 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test16 coreclrpal) + +target_link_libraries(paltest_vprintf_test16 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test16/test16.c b/src/pal/tests/palsuite/c_runtime/vprintf/test16/test16.c new file mode 100644 index 0000000000..66e9afe2d7 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test16/test16.c @@ -0,0 +1,50 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test16.c +** +** Purpose: Test #16 for the vprintf function. Tests the decimal notation +** double specifier (%f) +** +** +**==========================================================================*/ + + +#include +#include "../vprintf.h" + + + +int __cdecl main(int argc, char *argv[]) +{ + double val = 2560.001; + double neg = -2560.001; + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + + DoDoubleTest("foo %f", val, "foo 2560.001000", "foo 2560.001000"); + DoDoubleTest("foo %lf", val, "foo 2560.001000", "foo 2560.001000"); + DoDoubleTest("foo %hf", val, "foo 2560.001000", "foo 2560.001000"); + DoDoubleTest("foo %Lf", val, "foo 2560.001000", "foo 2560.001000"); + DoDoubleTest("foo %I64f", val, "foo 2560.001000", "foo 2560.001000"); + DoDoubleTest("foo %12f", val, "foo 2560.001000", "foo 2560.001000"); + DoDoubleTest("foo %-12f", val, "foo 2560.001000 ", "foo 2560.001000 "); + DoDoubleTest("foo %.1f", val, "foo 2560.0", "foo 2560.0"); + DoDoubleTest("foo %.8f", val, "foo 2560.00100000", "foo 2560.00100000"); + DoDoubleTest("foo %012f", val, "foo 02560.001000", "foo 02560.001000"); + DoDoubleTest("foo %#f", val, "foo 2560.001000", "foo 2560.001000"); + DoDoubleTest("foo %+f", val, "foo +2560.001000", "foo +2560.001000"); + DoDoubleTest("foo % f", val, "foo 2560.001000", "foo 2560.001000"); + DoDoubleTest("foo %+f", neg, "foo -2560.001000", "foo -2560.001000"); + DoDoubleTest("foo % f", neg, "foo -2560.001000", "foo -2560.001000"); + + PAL_Terminate(); + return PASS; +} diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test16/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test16/testinfo.dat new file mode 100644 index 0000000000..8b17d2f71a --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test16/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test16 +Description += Tests vprintf with decimal point format doubles diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test17/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test17/CMakeLists.txt new file mode 100644 index 0000000000..25970cba15 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test17/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test17.c +) + +add_executable(paltest_vprintf_test17 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test17 coreclrpal) + +target_link_libraries(paltest_vprintf_test17 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test17/test17.c b/src/pal/tests/palsuite/c_runtime/vprintf/test17/test17.c new file mode 100644 index 0000000000..d36a084903 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test17/test17.c @@ -0,0 +1,52 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test17.c +** +** Purpose: Test #17 for the vprintf function. Tests the lowercase +** shorthand notation double specifier (%g) +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + + + +int __cdecl main(int argc, char *argv[]) +{ + double val = 2560.001; + double neg = -2560.001; + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + + DoDoubleTest("foo %g", val, "foo 2560", "foo 2560"); + DoDoubleTest("foo %lg", val, "foo 2560", "foo 2560"); + DoDoubleTest("foo %hg", val, "foo 2560", "foo 2560"); + DoDoubleTest("foo %Lg", val, "foo 2560", "foo 2560"); + DoDoubleTest("foo %I64g", val, "foo 2560", "foo 2560"); + DoDoubleTest("foo %5g", val, "foo 2560", "foo 2560"); + DoDoubleTest("foo %-5g", val, "foo 2560 ", "foo 2560 "); + DoDoubleTest("foo %.1g", val, "foo 3e+003", "foo 3e+03"); + DoDoubleTest("foo %.2g", val, "foo 2.6e+003", "foo 2.6e+03"); + DoDoubleTest("foo %.12g", val, "foo 2560.001", "foo 2560.001"); + DoDoubleTest("foo %06g", val, "foo 002560", "foo 002560"); + DoDoubleTest("foo %#g", val, "foo 2560.00", "foo 2560.00"); + DoDoubleTest("foo %+g", val, "foo +2560", "foo +2560"); + DoDoubleTest("foo % g", val, "foo 2560", "foo 2560"); + DoDoubleTest("foo %+g", neg, "foo -2560", "foo -2560"); + DoDoubleTest("foo % g", neg, "foo -2560", "foo -2560"); + + PAL_Terminate(); + return PASS; +} diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test17/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test17/testinfo.dat new file mode 100644 index 0000000000..9f40fb03a0 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test17/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test17 +Description += Tests vprintf with compact format doubles (lowercase) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test18/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test18/CMakeLists.txt new file mode 100644 index 0000000000..45676b93dd --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test18/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test18.c +) + +add_executable(paltest_vprintf_test18 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test18 coreclrpal) + +target_link_libraries(paltest_vprintf_test18 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test18/test18.c b/src/pal/tests/palsuite/c_runtime/vprintf/test18/test18.c new file mode 100644 index 0000000000..6fde79b5fb --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test18/test18.c @@ -0,0 +1,51 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test18.c +** +** Purpose: Test #18 for the vprintf function. Tests the uppercase +** shorthand notation double specifier (%G) +** +** +**==========================================================================*/ + + +#include +#include "../vprintf.h" + + + +int __cdecl main(int argc, char *argv[]) +{ + double val = 2560.001; + double neg = -2560.001; + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + + DoDoubleTest("foo %G", val, "foo 2560", "foo 2560"); + DoDoubleTest("foo %lG", val, "foo 2560", "foo 2560"); + DoDoubleTest("foo %hG", val, "foo 2560", "foo 2560"); + DoDoubleTest("foo %LG", val, "foo 2560", "foo 2560"); + DoDoubleTest("foo %I64G", val, "foo 2560", "foo 2560"); + DoDoubleTest("foo %5G", val, "foo 2560", "foo 2560"); + DoDoubleTest("foo %-5G", val, "foo 2560 ", "foo 2560 "); + DoDoubleTest("foo %.1G", val, "foo 3E+003", "foo 3E+03"); + DoDoubleTest("foo %.2G", val, "foo 2.6E+003", "foo 2.6E+03"); + DoDoubleTest("foo %.12G", val, "foo 2560.001", "foo 2560.001"); + DoDoubleTest("foo %06G", val, "foo 002560", "foo 002560"); + DoDoubleTest("foo %#G", val, "foo 2560.00", "foo 2560.00"); + DoDoubleTest("foo %+G", val, "foo +2560", "foo +2560"); + DoDoubleTest("foo % G", val, "foo 2560", "foo 2560"); + DoDoubleTest("foo %+G", neg, "foo -2560", "foo -2560"); + DoDoubleTest("foo % G", neg, "foo -2560", "foo -2560"); + + PAL_Terminate(); + return PASS; +} diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test18/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test18/testinfo.dat new file mode 100644 index 0000000000..b41f8c63e0 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test18/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test18 +Description += Tests vprintf with compact format doubles (uppercase) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test19/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test19/CMakeLists.txt new file mode 100644 index 0000000000..25bc2fccd1 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test19/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test19.c +) + +add_executable(paltest_vprintf_test19 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test19 coreclrpal) + +target_link_libraries(paltest_vprintf_test19 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test19/test19.c b/src/pal/tests/palsuite/c_runtime/vprintf/test19/test19.c new file mode 100644 index 0000000000..d79f2e2591 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test19/test19.c @@ -0,0 +1,76 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test19.c +** +** Purpose: Test #19 for the vprintf function. Tests the variable length +** precision argument. +** +** +**==========================================================================*/ + + +#include +#include "../vprintf.h" + + + + +int __cdecl main(int argc, char *argv[]) +{ + int n = -1; + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + DoArgumentPrecTest("%.*s", 2, "bar", "bar", "ba", "ba"); + DoArgumentPrecTest("%.*S", 2, convert("bar"), "bar", "ba", "ba"); + + DoArgumentPrecTest("%.*n", 3, &n, "pointer to int", "", ""); + if (n != 0) + { + Fail("ERROR: Expected count parameter to resolve to %d, got %X\n", + 0, n); + } + + DoArgumentPrecTest("%.*c", 0, (void*)'a', "a", "a", "a"); + DoArgumentPrecTest("%.*c", 4, (void*)'a', "a", "a", "a"); + DoArgumentPrecTest("%.*C", 0, (void*)'a', "a", "a", "a"); + DoArgumentPrecTest("%.*C", 4, (void*)'a', "a", "a", "a"); + DoArgumentPrecTest("%.*d", 1, (void*)42, "42", "42", "42"); + DoArgumentPrecTest("%.*d", 3, (void*)42, "42", "042", "042"); + DoArgumentPrecTest("%.*i", 1, (void*)42, "42", "42", "42"); + DoArgumentPrecTest("%.*i", 3, (void*)42, "42", "042", "042"); + DoArgumentPrecTest("%.*o", 1, (void*)42, "42", "52", "52"); + DoArgumentPrecTest("%.*o", 3, (void*)42, "42", "052", "052"); + DoArgumentPrecTest("%.*u", 1, (void*)42, "42", "42", "42"); + DoArgumentPrecTest("%.*u", 3, (void*)42, "42", "042", "042"); + DoArgumentPrecTest("%.*x", 1, (void*)0x42, "0x42", "42", "42"); + DoArgumentPrecTest("%.*x", 3, (void*)0x42, "0x42", "042", "042"); + DoArgumentPrecTest("%.*X", 1, (void*)0x42, "0x42", "42", "42"); + DoArgumentPrecTest("%.*X", 3, (void*)0x42, "0x42", "042", "042"); + + + DoArgumentPrecDoubleTest("%.*e", 1, 2.01, "2.0e+000", "2.0e+00"); + DoArgumentPrecDoubleTest("%.*e", 3, 2.01, "2.010e+000", "2.010e+00"); + DoArgumentPrecDoubleTest("%.*E", 1, 2.01, "2.0E+000", "2.0E+00"); + DoArgumentPrecDoubleTest("%.*E", 3, 2.01, "2.010E+000", "2.010E+00"); + DoArgumentPrecDoubleTest("%.*f", 1, 2.01, "2.0", "2.0"); + DoArgumentPrecDoubleTest("%.*f", 3, 2.01, "2.010", "2.010"); + DoArgumentPrecDoubleTest("%.*g", 1, 256.01, "3e+002", "3e+02"); + DoArgumentPrecDoubleTest("%.*g", 3, 256.01, "256", "256"); + DoArgumentPrecDoubleTest("%.*g", 4, 256.01, "256", "256"); + DoArgumentPrecDoubleTest("%.*g", 6, 256.01, "256.01", "256.01"); + DoArgumentPrecDoubleTest("%.*G", 1, 256.01, "3E+002", "3E+02"); + DoArgumentPrecDoubleTest("%.*G", 3, 256.01, "256", "256"); + DoArgumentPrecDoubleTest("%.*G", 4, 256.01, "256", "256"); + DoArgumentPrecDoubleTest("%.*G", 6, 256.01, "256.01", "256.01"); + + PAL_Terminate(); + return PASS; +} diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test19/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test19/testinfo.dat new file mode 100644 index 0000000000..03c3afa693 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test19/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test19 +Description += Tests vprintf with argument specified precision diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test2/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test2/CMakeLists.txt new file mode 100644 index 0000000000..6820069cb9 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test2/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test2.c +) + +add_executable(paltest_vprintf_test2 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test2 coreclrpal) + +target_link_libraries(paltest_vprintf_test2 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test2/test2.c b/src/pal/tests/palsuite/c_runtime/vprintf/test2/test2.c new file mode 100644 index 0000000000..4d9c9bc6f5 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test2/test2.c @@ -0,0 +1,45 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test2.c +** +** Purpose: Test #2 for the vprintf function. Tests the string specifier +** (%s). +** +** +**==========================================================================*/ + + +#include +#include "../vprintf.h" + + + +int __cdecl main(int argc, char *argv[]) +{ + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + + DoStrTest("foo %s", "bar", "foo bar"); + DoStrTest("foo %hs", "bar", "foo bar"); + DoWStrTest("foo %ls", convert("bar"), "foo bar"); + DoWStrTest("foo %ws", convert("bar"), "foo bar"); + DoStrTest("foo %Ls", "bar", "foo bar"); + DoStrTest("foo %I64s", "bar", "foo bar"); + DoStrTest("foo %5s", "bar", "foo bar"); + DoStrTest("foo %.2s", "bar", "foo ba"); + DoStrTest("foo %5.2s", "bar", "foo ba"); + DoStrTest("foo %-5s", "bar", "foo bar "); + DoStrTest("foo %05s", "bar", "foo 00bar"); + + PAL_Terminate(); + return PASS; +} + diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test2/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test2/testinfo.dat new file mode 100644 index 0000000000..32c1d70d9e --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test2/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test2 +Description += Tests vprintf with strings diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test3/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test3/CMakeLists.txt new file mode 100644 index 0000000000..676d19bf7a --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test3/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test3.c +) + +add_executable(paltest_vprintf_test3 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test3 coreclrpal) + +target_link_libraries(paltest_vprintf_test3 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test3/test3.c b/src/pal/tests/palsuite/c_runtime/vprintf/test3/test3.c new file mode 100644 index 0000000000..5376c56b76 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test3/test3.c @@ -0,0 +1,45 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test3.c +** +** Purpose: Test #3 for the vprintf function. Tests the wide string +** specifier (%S). +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + + + +int __cdecl main(int argc, char *argv[]) +{ + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + DoWStrTest("foo %S", convert("bar"), "foo bar"); + DoStrTest("foo %hS", "bar", "foo bar"); + DoWStrTest("foo %lS", convert("bar"), "foo bar"); + DoWStrTest("foo %wS", convert("bar"), "foo bar"); + DoWStrTest("foo %LS", convert("bar"), "foo bar"); + DoWStrTest("foo %I64S", convert("bar"), "foo bar"); + DoWStrTest("foo %5S", convert("bar"), "foo bar"); + DoWStrTest("foo %.2S", convert("bar"), "foo ba"); + DoWStrTest("foo %5.2S", convert("bar"), "foo ba"); + DoWStrTest("foo %-5S", convert("bar"), "foo bar "); + DoWStrTest("foo %05S", convert("bar"), "foo 00bar"); + + PAL_Terminate(); + return PASS; +} + + diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test3/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test3/testinfo.dat new file mode 100644 index 0000000000..c3b385e8f1 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test3/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test3 +Description += Tests vprintf with wide strings diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test4/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test4/CMakeLists.txt new file mode 100644 index 0000000000..9ddb087e83 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test4/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test4.c +) + +add_executable(paltest_vprintf_test4 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test4 coreclrpal) + +target_link_libraries(paltest_vprintf_test4 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test4/test4.c b/src/pal/tests/palsuite/c_runtime/vprintf/test4/test4.c new file mode 100644 index 0000000000..3b66cde22e --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test4/test4.c @@ -0,0 +1,70 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test4.c +** +** Purpose: Test #4 for the vprintf function. Tests the pointer +** specifier (%p). +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + + + + +int __cdecl main(int argc, char *argv[]) +{ + void *ptr = (void*) 0x123456; + INT64 lptr = I64(0x1234567887654321); + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } +/* +** Run only on 64 bit platforms +*/ +#if defined(BIT64) && defined(PLATFORM_UNIX) + Trace("Testing for 64 Bit Platforms \n"); + DoPointerTest("%p", NULL, "NULL", "0000000000000000"); + DoPointerTest("%p", ptr, "pointer to 0x123456", "0000000000123456"); + DoPointerTest("%17p", ptr, "pointer to 0x123456", " 0000000000123456"); + DoPointerTest("%17p", ptr, "pointer to 0x123456", " 0000000000123456"); + DoPointerTest("%-17p", ptr, "pointer to 0x123456", "0000000000123456 "); + DoPointerTest("%+p", ptr, "pointer to 0x123456", "0000000000123456"); + DoPointerTest("%#p", ptr, "pointer to 0x123456", "0X0000000000123456"); + DoPointerTest("%lp", ptr, "pointer to 0x123456", "00123456"); + DoPointerTest("%hp", ptr, "pointer to 0x123456", "00003456"); + DoPointerTest("%Lp", ptr, "pointer to 0x123456", "00123456"); + DoI64Test("%I64p", lptr, "pointer to 0x1234567887654321", + "1234567887654321"); + +#else + Trace("Testing for Non 64 Bit Platforms \n"); + DoPointerTest("%p", NULL, "NULL", "00000000"); + DoPointerTest("%p", ptr, "pointer to 0x123456", "00123456"); + DoPointerTest("%9p", ptr, "pointer to 0x123456", " 00123456"); + DoPointerTest("%09p", ptr, "pointer to 0x123456", " 00123456"); + DoPointerTest("%-9p", ptr, "pointer to 0x123456", "00123456 "); + DoPointerTest("%+p", ptr, "pointer to 0x123456", "00123456"); + DoPointerTest("%#p", ptr, "pointer to 0x123456", "0X00123456"); + DoPointerTest("%lp", ptr, "pointer to 0x123456", "00123456"); + DoPointerTest("%hp", ptr, "pointer to 0x123456", "00003456"); + DoPointerTest("%Lp", ptr, "pointer to 0x123456", "00123456"); + DoI64Test("%I64p", lptr, "pointer to 0x1234567887654321", + "1234567887654321"); + +#endif + + PAL_Terminate(); + return PASS; +} + diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test4/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test4/testinfo.dat new file mode 100644 index 0000000000..74c4ce932e --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test4/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test4 +Description += Tests vprintf with pointers diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test5/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test5/CMakeLists.txt new file mode 100644 index 0000000000..f453bb66ee --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test5/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test5.c +) + +add_executable(paltest_vprintf_test5 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test5 coreclrpal) + +target_link_libraries(paltest_vprintf_test5 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test5/test5.c b/src/pal/tests/palsuite/c_runtime/vprintf/test5/test5.c new file mode 100644 index 0000000000..c9e2901230 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test5/test5.c @@ -0,0 +1,60 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test5.c +** +** Purpose: Test #5 for the vprintf function. Tests the count specifier (%n). +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + + + + +int __cdecl main(int argc, char *argv[]) +{ + char *longStr = + "really-long-string-that-just-keeps-going-on-and-on-and-on.." + "..................useless-filler.................................." + "..................useless-filler.................................." + "..................useless-filler.................................." + "%n bar"; + char *longResult = + "really-long-string-that-just-keeps-going-on-and-on-and-on.." + "..................useless-filler.................................." + "..................useless-filler.................................." + "..................useless-filler.................................." + " bar"; + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + DoCountTest("foo %n bar", 4, "foo bar"); + DoCountTest(longStr, 257, longResult); + DoCountTest("fo%n bar", 2, "fo bar"); + DoCountTest("%n", 0, ""); + DoCountTest("foo %#n bar", 4, "foo bar"); + DoCountTest("foo % n bar", 4, "foo bar"); + DoCountTest("foo %+n bar", 4, "foo bar"); + DoCountTest("foo %-n bar", 4, "foo bar"); + DoCountTest("foo %0n bar", 4, "foo bar"); + DoShortCountTest("foo %hn bar", 4, "foo bar"); + DoCountTest("foo %ln bar", 4, "foo bar"); + DoCountTest("foo %Ln bar", 4, "foo bar"); + DoCountTest("foo %I64n bar", 4, "foo bar"); + DoCountTest("foo %20.3n bar", 4, "foo bar"); + + PAL_Terminate(); + + return PASS; +} diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test5/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test5/testinfo.dat new file mode 100644 index 0000000000..01ff864208 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test5/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test5 +Description += Tests vprintf with the count specifier diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test6/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test6/CMakeLists.txt new file mode 100644 index 0000000000..1ce8d5aa4c --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test6/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test6.c +) + +add_executable(paltest_vprintf_test6 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test6 coreclrpal) + +target_link_libraries(paltest_vprintf_test6 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test6/test6.c b/src/pal/tests/palsuite/c_runtime/vprintf/test6/test6.c new file mode 100644 index 0000000000..6a83cccea6 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test6/test6.c @@ -0,0 +1,48 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test6.c +** +** Purpose: Test #6 for the vprintf function. Tests the char specifier (%c). +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + + + +int __cdecl main(int argc, char *argv[]) +{ + WCHAR wc = (WCHAR) 'c'; + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + + DoCharTest("foo %c", 'b', "foo b"); + DoCharTest("foo %hc", 'b', "foo b"); + DoWCharTest("foo %lc", wc, "foo c"); + DoCharTest("foo %Lc", 'b', "foo b"); + DoCharTest("foo %I64c", 'b', "foo b"); + DoCharTest("foo %5c", 'b', "foo b"); + DoCharTest("foo %.0c", 'b', "foo b"); + DoCharTest("foo %-5c", 'b', "foo b "); + DoCharTest("foo %05c", 'b', "foo 0000b"); + DoCharTest("foo % c", 'b', "foo b"); + DoCharTest("foo %#c", 'b', "foo b"); + + PAL_Terminate(); + return PASS; +} + + + diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test6/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test6/testinfo.dat new file mode 100644 index 0000000000..ce450183f6 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test6/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test6 +Description += Tests vprintf with characters diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test7/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test7/CMakeLists.txt new file mode 100644 index 0000000000..5627fe4c1e --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test7/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test7.c +) + +add_executable(paltest_vprintf_test7 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test7 coreclrpal) + +target_link_libraries(paltest_vprintf_test7 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test7/test7.c b/src/pal/tests/palsuite/c_runtime/vprintf/test7/test7.c new file mode 100644 index 0000000000..5096ace42c --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test7/test7.c @@ -0,0 +1,47 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test7.c +** +** Purpose: Test #7 for the vprintf function. Tests the wide char +** specifier (%C). +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + + + +int __cdecl main(int argc, char *argv[]) +{ + WCHAR wb = (WCHAR) 'b'; + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + + DoWCharTest("foo %C", wb, "foo b"); + DoWCharTest("foo %hC", wb, "foo b"); + DoCharTest("foo %lC", 'c', "foo c"); + DoWCharTest("foo %LC", wb, "foo b"); + DoWCharTest("foo %I64C", wb, "foo b"); + DoWCharTest("foo %5C", wb, "foo b"); + DoWCharTest("foo %.0C", wb, "foo b"); + DoWCharTest("foo %-5C", wb, "foo b "); + DoWCharTest("foo %05C", wb, "foo 0000b"); + DoWCharTest("foo % C", wb, "foo b"); + DoWCharTest("foo %#C", wb, "foo b"); + + PAL_Terminate(); + return PASS; +} + diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test7/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test7/testinfo.dat new file mode 100644 index 0000000000..254e31e5f8 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test7/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test7 +Description += Tests vprintf with wide characters diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test8/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test8/CMakeLists.txt new file mode 100644 index 0000000000..0131e4943e --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test8/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test8.c +) + +add_executable(paltest_vprintf_test8 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test8 coreclrpal) + +target_link_libraries(paltest_vprintf_test8 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test8/test8.c b/src/pal/tests/palsuite/c_runtime/vprintf/test8/test8.c new file mode 100644 index 0000000000..2683339ece --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test8/test8.c @@ -0,0 +1,53 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test8.c +** +** Purpose: Test #8 for the vprintf function. Tests the decimal +** specifier (%d). +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + + + +int __cdecl main(int argc, char *argv[]) +{ + int neg = -42; + int pos = 42; + INT64 l = 42; + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + + DoNumTest("foo %d", pos, "foo 42"); + DoNumTest("foo %ld", 0xFFFF, "foo 65535"); + DoNumTest("foo %hd", 0xFFFF, "foo -1"); + DoNumTest("foo %Ld", pos, "foo 42"); + DoI64Test("foo %I64d", l, "42", "foo 42"); + DoNumTest("foo %3d", pos, "foo 42"); + DoNumTest("foo %-3d", pos, "foo 42 "); + DoNumTest("foo %.1d", pos, "foo 42"); + DoNumTest("foo %.3d", pos, "foo 042"); + DoNumTest("foo %03d", pos, "foo 042"); + DoNumTest("foo %#d", pos, "foo 42"); + DoNumTest("foo %+d", pos, "foo +42"); + DoNumTest("foo % d", pos, "foo 42"); + DoNumTest("foo %+d", neg, "foo -42"); + DoNumTest("foo % d", neg, "foo -42"); + + PAL_Terminate(); + return PASS; +} + diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test8/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test8/testinfo.dat new file mode 100644 index 0000000000..73f287b9fe --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test8/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test8 +Description += Tests vprintf with decimal numbers diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test9/CMakeLists.txt b/src/pal/tests/palsuite/c_runtime/vprintf/test9/CMakeLists.txt new file mode 100644 index 0000000000..c70631f9dc --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test9/CMakeLists.txt @@ -0,0 +1,19 @@ +cmake_minimum_required(VERSION 2.8.12.2) + +set(CMAKE_INCLUDE_CURRENT_DIR ON) + +set(SOURCES + test9.c +) + +add_executable(paltest_vprintf_test9 + ${SOURCES} +) + +add_dependencies(paltest_vprintf_test9 coreclrpal) + +target_link_libraries(paltest_vprintf_test9 + pthread + m + coreclrpal +) diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test9/test9.c b/src/pal/tests/palsuite/c_runtime/vprintf/test9/test9.c new file mode 100644 index 0000000000..8545bc760e --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test9/test9.c @@ -0,0 +1,53 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: test9.c +** +** Purpose: Test #9 for the vprintf function. Tests the integer +** specifier (%i). +** +** +**==========================================================================*/ + + + +#include +#include "../vprintf.h" + + + +int __cdecl main(int argc, char *argv[]) +{ + int neg = -42; + int pos = 42; + INT64 l = 42; + + if (PAL_Initialize(argc, argv)) + { + return FAIL; + } + + + DoNumTest("foo %i", pos, "foo 42"); + DoNumTest("foo %li", 0xFFFF, "foo 65535"); + DoNumTest("foo %hi", 0xFFFF, "foo -1"); + DoNumTest("foo %Li", pos, "foo 42"); + DoI64Test("foo %I64i", l, "42", "foo 42"); + DoNumTest("foo %3i", pos, "foo 42"); + DoNumTest("foo %-3i", pos, "foo 42 "); + DoNumTest("foo %.1i", pos, "foo 42"); + DoNumTest("foo %.3i", pos, "foo 042"); + DoNumTest("foo %03i", pos, "foo 042"); + DoNumTest("foo %#i", pos, "foo 42"); + DoNumTest("foo %+i", pos, "foo +42"); + DoNumTest("foo % i", pos, "foo 42"); + DoNumTest("foo %+i", neg, "foo -42"); + DoNumTest("foo % i", neg, "foo -42"); + + PAL_Terminate(); + return PASS; +} + diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/test9/testinfo.dat b/src/pal/tests/palsuite/c_runtime/vprintf/test9/testinfo.dat new file mode 100644 index 0000000000..c4c77b9d11 --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/test9/testinfo.dat @@ -0,0 +1,12 @@ +# Licensed to the .NET Foundation under one or more agreements. +# The .NET Foundation licenses this file to you under the MIT license. +# See the LICENSE file in the project root for more information. + +Version = 1.0 +Section = C Runtime +Function = vprintf +Name = Positive Test for vprintf +TYPE = DEFAULT +EXE1 = test9 +Description += Tests vprintf with integer numbers diff --git a/src/pal/tests/palsuite/c_runtime/vprintf/vprintf.h b/src/pal/tests/palsuite/c_runtime/vprintf/vprintf.h new file mode 100644 index 0000000000..477db32f4d --- /dev/null +++ b/src/pal/tests/palsuite/c_runtime/vprintf/vprintf.h @@ -0,0 +1,193 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +/*============================================================================ +** +** Source: vprintf.h +** +** Purpose: Containts common testing functions for vprintf +** +** +**==========================================================================*/ + +#ifndef __vprintf_H__ +#define __vprintf_H__ + +int DoVprintf(char *format, ...) +{ + int retVal; + va_list arglist; + + va_start(arglist, format); + retVal = vprintf(format, arglist); + va_end(arglist); + + return (retVal); +} + +void DoStrTest(char *formatstr, char* param, char *checkstr) +{ + int ret; + + ret = DoVprintf(formatstr, param); + if (ret != strlen(checkstr)) + { + Fail("Expected vprintf to return %d, got %d.\n", + strlen(checkstr), ret); + } +} + +void DoWStrTest(char *formatstr, WCHAR* param, char *checkstr) +{ + int ret; + + ret = DoVprintf(formatstr, param); + if (ret != strlen(checkstr)) + { + Fail("Expected vprintf to return %d, got %d.\n", + strlen(checkstr), ret); + } +} + +void DoPointerTest(char *formatstr, void* param, char* paramstr, + char *checkstr1) +{ + int ret; + + ret = DoVprintf(formatstr, param); + if (ret != strlen(checkstr1)) + { + Fail("Expected vprintf to return %d, got %d.\n", + strlen(checkstr1), ret); + } +} + +void DoCountTest(char *formatstr, int param, char *checkstr) +{ + int ret; + int n = -1; + + ret = DoVprintf(formatstr, &n); + + if (n != param) + { + Fail("Expected count parameter to resolve to %d, got %d\n", param, n); + } + + if (ret != strlen(checkstr)) + { + Fail("Expected vprintf to return %d, got %d.\n", + strlen(checkstr), ret); + } +} + +void DoShortCountTest(char *formatstr, int param, char *checkstr) +{ + int ret; + short int n = -1; + + ret = DoVprintf(formatstr, &n); + + if (n != param) + { + Fail("Expected count parameter to resolve to %d, got %d\n", param, n); + } + + if (ret != strlen(checkstr)) + { + Fail("Expected vprintf to return %d, got %d.\n", + strlen(checkstr), ret); + } +} + + +void DoCharTest(char *formatstr, char param, char *checkstr) +{ + int ret; + + ret = DoVprintf(formatstr, param); + if (ret != strlen(checkstr)) + { + Fail("Expected vprintf to return %d, got %d.\n", + strlen(checkstr), ret); + } +} + +void DoWCharTest(char *formatstr, WCHAR param, char *checkstr) +{ + int ret; + + ret = DoVprintf(formatstr, param); + if (ret != strlen(checkstr)) + { + Fail("Expected vprintf to return %d, got %d.\n", + strlen(checkstr), ret); + } +} + +void DoNumTest(char *formatstr, int param, char *checkstr) +{ + int ret; + + ret = DoVprintf(formatstr, param); + if (ret != strlen(checkstr)) + { + Fail("Expected vprintf to return %d, got %d.\n", + strlen(checkstr), ret); + } +} + +void DoI64Test(char *formatstr, INT64 param, char *valuestr, char *checkstr1) +{ + int ret; + + ret = DoVprintf(formatstr, param); + if (ret != strlen(checkstr1)) + { + Fail("Expected vprintf to return %d, got %d.\n", + strlen(checkstr1), ret); + } +} + +void DoDoubleTest(char *formatstr, double param, char *checkstr1, + char *checkstr2) +{ + int ret; + + ret = DoVprintf(formatstr, param); + if (ret != strlen(checkstr1) && ret != strlen(checkstr2)) + { + Fail("Expected vprintf to return %d or %d, got %d.\n", + strlen(checkstr1), strlen(checkstr2), ret); + } +} + +void DoArgumentPrecTest(char *formatstr, int precision, void *param, + char *paramstr, char *checkstr1, char *checkstr2) +{ + int ret; + + ret = DoVprintf(formatstr, precision, param); + if (ret != strlen(checkstr1) && ret != strlen(checkstr2)) + { + Fail("Expected vprintf to return %d or %d, got %d.\n", + strlen(checkstr1), strlen(checkstr2), ret); + } +} + +void DoArgumentPrecDoubleTest(char *formatstr, int precision, double param, + char *checkstr1, char *checkstr2) +{ + int ret; + + ret = DoVprintf(formatstr, precision, param); + if (ret != strlen(checkstr1) && ret != strlen(checkstr2)) + { + Fail("Expected vprintf to return %d or %d, got %d.\n", + strlen(checkstr1), strlen(checkstr2), ret); + } +} + +#endif + -- cgit v1.2.3