2016-11-23 21:28:21 +00:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
#include <errno.h>
|
|
|
|
#include <limits.h>
|
|
|
|
#include "test.h"
|
|
|
|
|
|
|
|
int main(int argc, const char* argv[])
|
|
|
|
{
|
2016-11-26 10:23:25 +00:00
|
|
|
char* o;
|
|
|
|
char* p;
|
2016-11-23 21:28:21 +00:00
|
|
|
|
|
|
|
p = sbrk(0);
|
|
|
|
ASSERT(p == sbrk(0));
|
|
|
|
ASSERT(p == sbrk(8));
|
|
|
|
ASSERT(p != sbrk(0));
|
|
|
|
ASSERT(p != sbrk(-8));
|
|
|
|
ASSERT(p == sbrk(0));
|
|
|
|
|
2016-11-26 10:23:25 +00:00
|
|
|
errno = 0;
|
|
|
|
o = sbrk(INT_MAX);
|
|
|
|
if (o == (char*)-1)
|
|
|
|
ASSERT(ENOMEM == errno);
|
|
|
|
else
|
|
|
|
{
|
|
|
|
ASSERT(0 == errno);
|
|
|
|
p = sbrk(0);
|
|
|
|
ASSERT(p > o);
|
|
|
|
brk(o);
|
|
|
|
}
|
|
|
|
|
|
|
|
errno = 0;
|
|
|
|
o = sbrk(INT_MIN);
|
|
|
|
if (o == (char*)-1)
|
|
|
|
ASSERT(ENOMEM == errno);
|
|
|
|
else
|
|
|
|
{
|
|
|
|
ASSERT(0 == errno);
|
|
|
|
p = sbrk(0);
|
|
|
|
ASSERT(p < o);
|
|
|
|
brk(o);
|
|
|
|
}
|
2016-11-23 21:28:21 +00:00
|
|
|
|
|
|
|
finished();
|
|
|
|
}
|
|
|
|
|