Serenity Operating System
1/*
2 * Copyright (c) 2022, the SerenityOS developers.
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#include <LibTest/TestCase.h>
8#include <wchar.h>
9
10TEST_CASE(swprint_no_format)
11{
12 wchar_t buffer[256];
13 size_t len = swprintf(buffer, 64, L"Well, hello friends!");
14
15 VERIFY(wcscmp(buffer, L"Well, hello friends!") == 0);
16 VERIFY(wcscmp(buffer, L"Well, hello friends") != 0);
17 VERIFY(wcslen(buffer) == len);
18}
19
20TEST_CASE(swprint_single_wchar_argument)
21{
22 wchar_t buffer[256];
23 size_t len = swprintf(buffer, 64, L"Well, %ls friends!", L"hello");
24
25 VERIFY(wcscmp(buffer, L"Well, hello friends!") == 0);
26 VERIFY(wcscmp(buffer, L"Well, hello friends") != 0);
27 VERIFY(wcslen(buffer) == len);
28}
29
30TEST_CASE(swprint_single_char_argument)
31{
32 wchar_t buffer[256];
33 size_t len = swprintf(buffer, 64, L"Well, %s friends!", "hello");
34
35 VERIFY(wcscmp(buffer, L"Well, hello friends!") == 0);
36 VERIFY(wcscmp(buffer, L"Well, hello friends") != 0);
37 VERIFY(wcslen(buffer) == len);
38}
39
40TEST_CASE(swprint_single_narrow_char_argument)
41{
42 wchar_t buffer[256];
43 size_t len = swprintf(buffer, 64, L"Well, %hs friends!", "hello");
44
45 VERIFY(wcscmp(buffer, L"Well, hello friends!") == 0);
46 VERIFY(wcscmp(buffer, L"Well, hello friends") != 0);
47 VERIFY(wcslen(buffer) == len);
48}
49
50TEST_CASE(swprint_mixed_arguments)
51{
52 wchar_t buffer[256];
53 size_t len = swprintf(buffer, 64, L"Well, %ls friends! %hs is less then %s.", L"hello", "10", "20");
54
55 VERIFY(wcscmp(buffer, L"Well, hello friends! 10 is less then 20.") == 0);
56 VERIFY(wcscmp(buffer, L"Well, hello friends! 10 is less then 2.") != 0);
57 VERIFY(wcslen(buffer) == len);
58}