blob: 34e8920aef089de749762937a5318f20b3da6c81 [file] [log] [blame]
// Copyright 2017 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include <sys/random.h>
#include <errno.h>
#include <unittest/unittest.h>
bool getentropy_valid() {
BEGIN_TEST;
char buf[16];
errno = 0;
int result = getentropy(buf, sizeof(buf));
int err = errno;
EXPECT_EQ(result, 0);
EXPECT_EQ(err, 0);
END_TEST;
}
bool getentropy_too_big() {
BEGIN_TEST;
const size_t size = 1024 * 1024 * 1024;
char* buf = static_cast<char*>(malloc(size));
EXPECT_NONNULL(buf);
errno = 0;
int result = getentropy(buf, size);
int err = errno;
EXPECT_EQ(result, -1);
EXPECT_EQ(err, EIO);
free(buf);
END_TEST;
}
BEGIN_TEST_CASE(getentropy_tests)
RUN_TEST(getentropy_valid);
RUN_TEST(getentropy_too_big);
END_TEST_CASE(getentropy_tests)