Luna/tests/libc/stdlib.c

140 lines
1.7 KiB
C

#include "Test.h"
#include <stdlib.h>
DEFINE_TEST(atoi)
{
START_TEST(atoi);
const char* str = "42";
int num = atoi(str);
EXPECT_EQ(num, 42);
str = "-56";
num = atoi(str);
EXPECT_EQ(num, -56);
str = "Not a number";
num = atoi(str);
EXPECT_EQ(num, 0);
TEST_SUCCESS();
}
DEFINE_TEST(atol)
{
START_TEST(atol);
const char* str = "42";
long num = atol(str);
EXPECT_EQ(num, 42);
str = "-56";
num = atol(str);
EXPECT_EQ(num, -56);
str = "Not a number";
num = atol(str);
EXPECT_EQ(num, 0);
str = "68719476735";
num = atol(str);
EXPECT_EQ(num, 68719476735);
TEST_SUCCESS();
}
DEFINE_TEST(atoll)
{
START_TEST(atoll);
const char* str = "42";
long long num = atoll(str);
EXPECT_EQ(num, 42);
str = "-56";
num = atoll(str);
EXPECT_EQ(num, -56);
str = "Not a number";
num = atoll(str);
EXPECT_EQ(num, 0);
str = "68719476735";
num = atoll(str);
EXPECT_EQ(num, 68719476735);
TEST_SUCCESS();
}
DEFINE_TEST(srand)
{
START_TEST(srand);
srand(5849);
int val = rand();
EXPECT_EQ(val, -1731894882);
TEST_SUCCESS();
}
DEFINE_TEST(malloc)
{
START_TEST(malloc);
int* ptr = malloc(6 * sizeof(int));
if (!ptr)
{
TEST_NOT_SURE(ptr);
return true;
}
*ptr = 6;
EXPECT_EQ(*ptr, 6);
ptr[5] = 4;
EXPECT_EQ(ptr[5], 4);
free(ptr);
TEST_SUCCESS();
}
DEFINE_TEST(calloc)
{
START_TEST(calloc);
int* ptr = calloc(6, sizeof(int));
if (!ptr) { TEST_NOT_SURE(ptr); }
EXPECT_EQ(*ptr, 0);
EXPECT_EQ(ptr[5], 0);
*ptr = 6;
EXPECT_EQ(*ptr, 6);
ptr[5] = 4;
EXPECT_EQ(ptr[5], 4);
free(ptr);
TEST_SUCCESS();
}