I have now added these unit tests: (defun semantic-utest-main() (interactive) "call all utests" (semantic-utest-C) (semantic-utest-Python) (semantic-utest-Java) (semantic-utest-Javascript) (semantic-utest-Makefile) ) Ive changed the validation so it looks at a copy of a tag structure, so it can handle stuff like Java. It no longer handles the invalidation test very well though. It would be interesting if anyone else could try these and comment.