Enable tests for linuxppc via qemu-ppc.
This commit is contained in:
parent
90e3d45c69
commit
cf33bd6cc4
|
@ -14,6 +14,7 @@ vars.plats = {
|
||||||
"rpi",
|
"rpi",
|
||||||
}
|
}
|
||||||
vars.plats_with_tests = {
|
vars.plats_with_tests = {
|
||||||
|
"linuxppc",
|
||||||
"qemuppc",
|
"qemuppc",
|
||||||
"pc86",
|
"pc86",
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,6 @@ void* sbrk(int increment)
|
||||||
{
|
{
|
||||||
char* old;
|
char* old;
|
||||||
char* new;
|
char* new;
|
||||||
char* actual;
|
|
||||||
|
|
||||||
if (!current)
|
if (!current)
|
||||||
current = (char*) _syscall(__NR_brk, 0, 0, 0);
|
current = (char*) _syscall(__NR_brk, 0, 0, 0);
|
||||||
|
@ -35,15 +34,21 @@ void* sbrk(int increment)
|
||||||
return current;
|
return current;
|
||||||
|
|
||||||
old = current;
|
old = current;
|
||||||
|
|
||||||
new = old + increment;
|
new = old + increment;
|
||||||
|
|
||||||
actual = (char*) _syscall(__NR_brk, (quad) new, 0, 0);
|
if ((increment > 0) && (new <= old))
|
||||||
if (actual < new)
|
goto out_of_memory;
|
||||||
{
|
else if ((increment < 0) && (new >= old))
|
||||||
errno = ENOMEM;
|
goto out_of_memory;
|
||||||
return OUT_OF_MEMORY;
|
|
||||||
}
|
if (brk(new) < 0)
|
||||||
|
goto out_of_memory;
|
||||||
|
|
||||||
current = actual;
|
|
||||||
return old;
|
return old;
|
||||||
|
|
||||||
|
out_of_memory:
|
||||||
|
errno = ENOMEM;
|
||||||
|
return OUT_OF_MEMORY;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
7
plat/linuxppc/tests/build.lua
Normal file
7
plat/linuxppc/tests/build.lua
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
include("tests/plat/build.lua")
|
||||||
|
|
||||||
|
plat_testsuite {
|
||||||
|
name = "tests",
|
||||||
|
plat = "linuxppc",
|
||||||
|
method = "qemu-ppc"
|
||||||
|
}
|
|
@ -10,10 +10,6 @@ int main(int argc, const char* argv[])
|
||||||
char* o;
|
char* o;
|
||||||
char* p;
|
char* p;
|
||||||
|
|
||||||
errno = 0;
|
|
||||||
ASSERT(-1 == brk((void*)-1));
|
|
||||||
ASSERT(ENOMEM == errno);
|
|
||||||
|
|
||||||
p = sbrk(0);
|
p = sbrk(0);
|
||||||
ASSERT(p == sbrk(0));
|
ASSERT(p == sbrk(0));
|
||||||
ASSERT(p == sbrk(8));
|
ASSERT(p == sbrk(8));
|
||||||
|
|
|
@ -6,6 +6,7 @@ void finished(void)
|
||||||
{
|
{
|
||||||
static const char s[] = "@@FINISHED\n";
|
static const char s[] = "@@FINISHED\n";
|
||||||
write(1, s, sizeof(s));
|
write(1, s, sizeof(s));
|
||||||
|
_exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void writehex(uint32_t code)
|
void writehex(uint32_t code)
|
||||||
|
|
|
@ -31,6 +31,20 @@ case $method in
|
||||||
| ( read dummy && kill $(cat $pidfile) )
|
| ( read dummy && kill $(cat $pidfile) )
|
||||||
|
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
qemu-*)
|
||||||
|
if ! hash $method 2>/dev/null; then
|
||||||
|
echo "Warning: $method not installed, skipping test"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
$method $img > $result
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Error: $method not known by testdriver"
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
( grep -q @@FAIL $result || ! grep -q @@FINISHED $result ) && cat $result && exit 1
|
( grep -q @@FAIL $result || ! grep -q @@FINISHED $result ) && cat $result && exit 1
|
||||||
|
|
Loading…
Reference in a new issue