1// Licensed to the .NET Foundation under one or more agreements.
2// The .NET Foundation licenses this file to you under the MIT license.
3// See the LICENSE file in the project root for more information.
4
5/*============================================================================
6**
7** Source: test10.c
8**
9** Purpose:Tests swprintf with octal numbers
10**
11**
12**==========================================================================*/
13
14
15
16#include <palsuite.h>
17#include "../swprintf.h"
18
19/*
20 * Uses memcmp & wcslen
21 */
22
23int __cdecl main(int argc, char *argv[])
24{
25 int neg = -42;
26 int pos = 42;
27 INT64 l = 42;
28
29 if (PAL_Initialize(argc, argv) != 0)
30 {
31 return FAIL;
32 }
33
34
35 DoNumTest(convert("foo %o"), pos, convert("foo 52"));
36 DoNumTest(convert("foo %lo"), 0xFFFF, convert("foo 177777"));
37 DoNumTest(convert("foo %ho"), 0xFFFF, convert("foo 177777"));
38 DoNumTest(convert("foo %Lo"), pos, convert("foo 52"));
39 DoI64Test(convert("foo %I64o"), l, "0x0000000000000042",
40 convert("foo 52"));
41 DoNumTest(convert("foo %3o"), pos, convert("foo 52"));
42 DoNumTest(convert("foo %-3o"), pos, convert("foo 52 "));
43 DoNumTest(convert("foo %.1o"), pos, convert("foo 52"));
44 DoNumTest(convert("foo %.3o"), pos, convert("foo 052"));
45 DoNumTest(convert("foo %03o"), pos, convert("foo 052"));
46 DoNumTest(convert("foo %#o"), pos, convert("foo 052"));
47 DoNumTest(convert("foo %+o"), pos, convert("foo 52"));
48 DoNumTest(convert("foo % o"), pos, convert("foo 52"));
49 DoNumTest(convert("foo %+o"), neg, convert("foo 37777777726"));
50 DoNumTest(convert("foo % o"), neg, convert("foo 37777777726"));
51
52 PAL_Terminate();
53 return PASS;
54}
55
56