this repo has no description
1// Copyright (c) Facebook, Inc. and its affiliates. (http://www.facebook.com)
2#include "Python.h"
3#include "gtest/gtest.h"
4
5#include "capi-fixture.h"
6
7namespace py {
8namespace testing {
9
10using RandomExtensionApiTest = ExtensionApi;
11
12TEST_F(RandomExtensionApiTest, URandomNegativePositiveSizeDoesNotRaise) {
13 char buffer[10];
14 EXPECT_EQ(_PyOS_URandom(buffer, sizeof(buffer)), 0);
15 EXPECT_EQ(PyErr_Occurred(), nullptr);
16}
17
18TEST_F(RandomExtensionApiTest, URandomNegativeSizeRaisesValueError) {
19 char buffer[10];
20 EXPECT_EQ(_PyOS_URandom(buffer, -1), -1);
21 ASSERT_NE(PyErr_Occurred(), nullptr);
22 EXPECT_TRUE(PyErr_ExceptionMatches(PyExc_ValueError));
23}
24
25TEST_F(RandomExtensionApiTest, URandomNonblockPositiveSizeDoesNotRaise) {
26 char buffer[10];
27 EXPECT_EQ(_PyOS_URandomNonblock(buffer, sizeof(buffer)), 0);
28 EXPECT_EQ(PyErr_Occurred(), nullptr);
29}
30
31TEST_F(RandomExtensionApiTest, URandomNonblockNegativeSizeRaisesValueError) {
32 char buffer[10];
33 EXPECT_EQ(_PyOS_URandomNonblock(buffer, -1), -1);
34 ASSERT_NE(PyErr_Occurred(), nullptr);
35 EXPECT_TRUE(PyErr_ExceptionMatches(PyExc_ValueError));
36}
37
38} // namespace testing
39} // namespace py