summaryrefslogtreecommitdiff
path: root/src/pal/tests/palsuite/c_runtime/_putenv/test2/test2.c
blob: 39be4f68b4297637cfedd79ffc730969038c79b0 (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
// 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:  Create an environment variable with _putenv and then use getenv 
** to check it.  This test resets an environment variable.
**
**
**===================================================================*/

#include <palsuite.h>

const char *_putenvString0 = "AnUnusualVariable=AnUnusualValue";
const char *_putenvString1 = "AnUnusualVariable=";
const char *variable = "AnUnusualVariable";
const char *value = "AnUnusualValue";

int __cdecl main(int argc, char **argv)
{
   
    char *variableValue;

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

    if(_putenv(_putenvString0) == -1)
    {
        Fail("ERROR: _putenv failed to set an environment "
             "variable with a valid format.\n  Call was"
             "_putenv(%s)\n", _putenvString0);
    }

    variableValue = getenv(variable);
    
    if (variableValue == NULL)
    { 
        Fail("ERROR: getenv(%s) call returned NULL\nThe call "
             "should have returned '%s'\n", variable, value);
    }  
    else 
    {
        if ( strcmp(variableValue, value) != 0 ) 
        {
            Fail("ERROR: _putenv(%s)\nshould have set the variable "
                 "'%s'\n to '%s'.\nA subsequent call to getenv(%s)\n"
                 "returned '%s' instead.\n", _putenvString0,
                 variable, value, variable, variableValue);
        }
        else 
        {
            if(_putenv(_putenvString1) == -1)
            {
                Fail("ERROR: _putenv failed to set an environment "
                     "variable with a valid format.\n  Call was"
                     "_putenv(%s)\n", _putenvString1);
            }

            variableValue = getenv(variable);

            if (variableValue != NULL)
            { 
                Fail("ERROR: getenv(%s) call did not return NULL.\nThe call "
                     "returned '%s'.\n", variable, value);
            }
        }
    }
    
    PAL_Terminate();
    return PASS;
}