Fix emulator build error
[platform/framework/web/chromium-efl.git] / base / scoped_clear_last_error_unittest.cc
1 // Copyright 2018 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "base/scoped_clear_last_error.h"
6
7 #include "base/logging.h"
8 #include "build/build_config.h"
9 #include "testing/gtest/include/gtest/gtest.h"
10
11 #if BUILDFLAG(IS_WIN)
12 #include <windows.h>
13 #endif  // BUILDFLAG(IS_WIN)
14
15 namespace base {
16
17 TEST(ScopedClearLastError, TestNoError) {
18   errno = 1;
19   {
20     ScopedClearLastError clear_error;
21     EXPECT_EQ(0, errno);
22   }
23   EXPECT_EQ(1, errno);
24 }
25
26 TEST(ScopedClearLastError, TestError) {
27   errno = 1;
28   {
29     ScopedClearLastError clear_error;
30     errno = 2;
31   }
32   EXPECT_EQ(1, errno);
33 }
34
35 #if BUILDFLAG(IS_WIN)
36
37 TEST(ScopedClearLastError, TestNoErrorWin) {
38   ::SetLastError(1);
39   {
40     ScopedClearLastError clear_error;
41     EXPECT_EQ(logging::SystemErrorCode(0), ::GetLastError());
42   }
43   EXPECT_EQ(logging::SystemErrorCode(1), ::GetLastError());
44 }
45
46 TEST(ScopedClearLastError, TestErrorWin) {
47   ::SetLastError(1);
48   {
49     ScopedClearLastError clear_error;
50     ::SetLastError(2);
51   }
52   EXPECT_EQ(logging::SystemErrorCode(1), ::GetLastError());
53 }
54
55 #endif  // BUILDFLAG(IS_WIN)
56
57 }  // namespace base