[MSVCRT_APITEST]: Commit a simple test for popen(), by Andreas Maier.
[reactos.git] / rostests / apitests / msvcrt / popen.c
1 /*
2 * PROJECT: ReactOS API Tests
3 * LICENSE: See COPYING in the top level directory
4 * PURPOSE: Test for CRT process handling.
5 * PROGRAMMER: Andreas Maier <andy1.m@gmx.de>
6 */
7
8 #include <apitest.h>
9
10 #define WIN32_NO_STATUS
11 #include <stdio.h>
12
13 static void Test_popen()
14 {
15 FILE * f;
16 int r;
17 char str[20];
18
19 /* NOTE: We suppose that the NT test installation has an accessible cmd.exe */
20 f = _popen("cmd.exe /C \"echo Hallo\"", "r");
21 ok(f != NULL, "_popen returns NULL!\n");
22
23 ZeroMemory(str, sizeof(str));
24 fgets(str, sizeof(str) - 1, f);
25 ok(lstrcmp(str, "Hallo\n") == 0, "fgets: expected \"Hallo\", got %s.\n", str);
26
27 r = _pclose(f);
28 ok(r == 0, "_pclose: expected 0, got %i.\n", r);
29 r = *_errno();
30 ok(r == 0, "_errno: expected 0, got %i,\n", r);
31 }
32
33 START_TEST(popen)
34 {
35 Test_popen();
36 }
37
38 /* EOF */