summaryrefslogtreecommitdiff
path: root/src/pal/tests/palsuite/c_runtime/strchr/test1/test1.cpp
blob: 9190c4f7ce6ad30bbadc35f33bfcc93fa7e86fb9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
// 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 this on a character which is in a string, and ensure the pointer
** points to that character.  Then check the string for the null character,
** which the return pointer should point to.  Then search for a character not
** in the string and check that the return value is NULL.
**
**
**==========================================================================*/

#include <palsuite.h>

struct testCase
{
    int result;
    char string[50];
    int character;
};



int __cdecl main(int argc, char *argv[])
{
    int i = 0;
    char *result;

    /*
     * this structure includes several strings to be tested with
     * strchr function and the expected results
     */

    struct testCase testCases[]=
    {
        {22,"corn cup cat cream coast",'s'},
        {10,"corn cup cat cream coast",'a'},
        {2,"This is a test",'i'},
        {10,"This is a test",'t'},
        {'\0',"This is a test",'b'},/* zero used instead of NULL */
        {'\0',"This is a test",121},/* zero used instead of NULL */
        {4,"This is a test of the function",' '},
        {25,"This is a test of the function",'c'},
        {'\0',"This is a test of the function",'C'},
        {24,"corn cup cat cream coast", '\0'}/* zero used instead of NULL */
    };

    if (0 != PAL_Initialize(argc, argv))
    {
        return FAIL;
    }


    /* Loop through the structure and test each case */

    for (i=0; i< sizeof(testCases)/sizeof(struct testCase); i++)
    {
       result = strchr(testCases[i].string,testCases[i].character);
       if (result==NULL)
       {
          if (testCases[i].result != (int) NULL)
          {
              Fail("Expected strchr() to return \"%s\" instead of NULL!\n",
                   testCases[i].string + testCases[i].result);
          }
       }
       else
       {
          if (result != testCases[i].string + testCases[i].result)
          {
              Fail("Expected strchr() to return \"%s\" instead of \"%s\"!\n",
                   testCases[i].string + testCases[i].result, result);
          }
        }

    }

    PAL_Terminate();

    return PASS;
}