Skipping Objective C tests

This is a tip for people not interested in Objective C (like I).
Especially, clang currently fails all Objective C tests for me because
I don't have Objectice C headers (duh).

Open test/Makefile, and delete "-or -name '*.m'" part in find run.

By the way, is there some way to detect presence of Objective C
headers reliably? If so, make test could skip Objective C tests
automatically.

The right answer is probably to move all the objc tests out into a separate directory (ParseObjC, SemaObjC etc), and then have the driver for the tests skip them if not present. The driver is currently just makefile goop, we could use $(shell ls /usr/include/objc/objc.h) to determine if it exists or something like that.

What do you think?

-Chris

Except for carbon.m, tests do not need to depend on Objective C headers. I will remove the dependencies shortly.

- fariborz

I don't think that's necessary. Objective C tests are already very
easy to identify (i.e. they have .m extension), so I don't see a need
to move them to separate directory.

This is a tip for people not interested in Objective C (like I).
Especially, clang currently fails all Objective C tests for me because
I don't have Objectice C headers (duh).

Open test/Makefile, and delete "-or -name '*.m'" part in find run.

By the way, is there some way to detect presence of Objective C
headers reliably? If so, make test could skip Objective C tests
automatically.

The right answer is probably to move all the objc tests out into a
separate directory (ParseObjC, SemaObjC etc), and then have the driver
for the tests skip them if not present. The driver is currently just
makefile goop, we could use $(shell ls /usr/include/objc/objc.h) to
determine if it exists or something like that.

Objective-C is part of the clang. We need to excercise them with each new change to clang. I will remove the dependency on objc.h as much as I can. Those which test the rewriter may be skipped though (these tests may be moved to a new ObjcRewrite directory).

- Fariborz

The right answer is probably to move all the objc tests out into a
separate directory (ParseObjC, SemaObjC etc), and then have the driver
for the tests skip them if not present. The driver is currently just
makefile goop, we could use $(shell ls /usr/include/objc/objc.h) to
determine if it exists or something like that.

Objective-C is part of the clang. We need to excercise them with each new change to clang. I will remove the dependency on objc.h as much as I can. Those which test the rewriter may be skipped though (these tests may be moved to a new ObjcRewrite directory).

Is there a fixed path to objc.h? I can make the makefiles skip .m files if /usr/include/objc/objc.h doesn't exist, for example.

-Chris

The right answer is probably to move all the objc tests out into a
separate directory (ParseObjC, SemaObjC etc), and then have the driver
for the tests skip them if not present. The driver is currently just
makefile goop, we could use $(shell ls /usr/include/objc/objc.h) to
determine if it exists or something like that.

Objective-C is part of the clang. We need to excercise them with each new change to clang. I will remove the dependency on objc.h as much as I can. Those which test the rewriter may be skipped though (these tests may be moved to a new ObjcRewrite directory).

Is there a fixed path to objc.h? I can make the makefiles skip .m files if /usr/include/objc/objc.h doesn't exist, for example.

Yes. It is /usr/include/objc

- Fariborz

Ok, fair enough. :slight_smile:

Thanks Fariborz,

-Chris