* Source tree refactoring.
This commit is contained in:
parent
45610ae675
commit
8798fae304
21 changed files with 31 additions and 512 deletions
66
src/libutil/test-aterm.cc
Normal file
66
src/libutil/test-aterm.cc
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
#include "aterm.hh"
|
||||
#include <iostream>
|
||||
|
||||
|
||||
void runTests()
|
||||
{
|
||||
verbosity = lvlDebug;
|
||||
|
||||
ATMatcher pos;
|
||||
|
||||
ATerm t = ATmake("Call(Foo, Bar, \"xyz\")");
|
||||
|
||||
debug(format("term: %1%") % t);
|
||||
|
||||
string fun, arg3;
|
||||
ATerm lhs, rhs;
|
||||
|
||||
if (!(atMatch(pos, t) >> "Call" >> lhs >> rhs >> arg3))
|
||||
throw Error("should succeed");
|
||||
if (arg3 != "xyz") throw Error("bad 1");
|
||||
|
||||
if (!(atMatch(pos, t) >> fun >> lhs >> rhs >> arg3))
|
||||
throw Error("should succeed");
|
||||
if (fun != "Call") throw Error("bad 2");
|
||||
if (arg3 != "xyz") throw Error("bad 3");
|
||||
|
||||
if (!(atMatch(pos, t) >> fun >> lhs >> rhs >> "xyz"))
|
||||
throw Error("should succeed");
|
||||
|
||||
if (atMatch(pos, t) >> fun >> lhs >> rhs >> "abc")
|
||||
throw Error("should fail");
|
||||
|
||||
if (atMatch(pos, t) >> "Call" >> lhs >> rhs >> "abc")
|
||||
throw Error("should fail");
|
||||
|
||||
t = ATmake("X([A, B, C], \"abc\")");
|
||||
|
||||
ATerm t1, t2, t3;
|
||||
if (atMatch(pos, t) >> "X" >> t1 >> t2 >> t3)
|
||||
throw Error("should fail");
|
||||
if (!(atMatch(pos, t) >> "X" >> t1 >> t2))
|
||||
throw Error("should succeed");
|
||||
ATermList ts;
|
||||
if (!(atMatch(pos, t) >> "X" >> ts >> t2))
|
||||
throw Error("should succeed");
|
||||
if (ATgetLength(ts) != 3)
|
||||
throw Error("bad");
|
||||
if (atMatch(pos, t) >> "X" >> t1 >> ts)
|
||||
throw Error("should fail");
|
||||
}
|
||||
|
||||
|
||||
int main(int argc, char * * argv)
|
||||
{
|
||||
ATerm bottomOfStack;
|
||||
ATinit(argc, argv, &bottomOfStack);
|
||||
|
||||
try {
|
||||
runTests();
|
||||
} catch (Error & e) {
|
||||
printMsg(lvlError, format("error: %1%") % e.msg());
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue