this repo has no description
at trunk 39 lines 1.1 kB view raw
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