1*50cd964eSLouis Dionne //===----------------------------------------------------------------------===//
2*50cd964eSLouis Dionne //
3*50cd964eSLouis Dionne // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*50cd964eSLouis Dionne // See https://llvm.org/LICENSE.txt for license information.
5*50cd964eSLouis Dionne // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*50cd964eSLouis Dionne //
7*50cd964eSLouis Dionne //===----------------------------------------------------------------------===//
8*50cd964eSLouis Dionne 
9*50cd964eSLouis Dionne // XFAIL: libcpp-has-no-stdin
10*50cd964eSLouis Dionne 
11*50cd964eSLouis Dionne // <iostream>
12*50cd964eSLouis Dionne 
13*50cd964eSLouis Dionne // istream wcin;
14*50cd964eSLouis Dionne 
15*50cd964eSLouis Dionne // FILE_DEPENDENCIES: %t.exe
16*50cd964eSLouis Dionne // RUN: %{build}
17*50cd964eSLouis Dionne // RUN: %{exec} echo "123" | %t.exe > %t.out
18*50cd964eSLouis Dionne // RUN: grep -e 'The number is 123!' %t.out
19*50cd964eSLouis Dionne 
20*50cd964eSLouis Dionne #include <iostream>
21*50cd964eSLouis Dionne #include <cassert>
22*50cd964eSLouis Dionne 
23*50cd964eSLouis Dionne #include "test_macros.h"
24*50cd964eSLouis Dionne 
25*50cd964eSLouis Dionne int main(int, char**)
26*50cd964eSLouis Dionne {
27*50cd964eSLouis Dionne     int i;
28*50cd964eSLouis Dionne     std::wcin >> i;
29*50cd964eSLouis Dionne     std::wcout << L"The number is " << i << L"!";
30*50cd964eSLouis Dionne 
31*50cd964eSLouis Dionne #ifdef _LIBCPP_HAS_NO_STDOUT
32*50cd964eSLouis Dionne     assert(std::wcin.tie() == NULL);
33*50cd964eSLouis Dionne #else
34*50cd964eSLouis Dionne     assert(std::wcin.tie() == &std::wcout);
35*50cd964eSLouis Dionne #endif
36*50cd964eSLouis Dionne 
37*50cd964eSLouis Dionne     return 0;
38*50cd964eSLouis Dionne }
39