diff --git a/modules/Makefile b/modules/Makefile index 1f10aac3b44d4adda4862a1936f768c4ba5c0a88..6325a467a352baa669f68cedcf254ad15d5a0bed 100755 --- a/modules/Makefile +++ b/modules/Makefile @@ -91,16 +91,18 @@ # `make yourmodule/tests/yourclass.pp` and a test manifest with broken # dependencies will be produced for you to repair. +# modulepath with colon separated module directories: +modulepath := . + # Recursive call to make all tests in a module will override this # variable: -modules := $(patsubst %.,%,$(wildcard */.)) +modules := $(foreach moduledir,$(subst :, ,$(modulepath)),$(patsubst %.,%,$(wildcard $(moduledir)/*/.))) # Make modules available to the second/third pass make that builds # test-sub-stage-2: export modules # Recursive wildcard match (must be recursively expanded), syntax: # $(call rwildcard,_directory_,_wildcard_ [...]) -#rwildcard = $(foreach elem,$(wildcard $1/*),$(call rwildcard,$(elem),$2) $(filter $(subst *,%,$2),$(elem))) rwildcard = $(foreach elem,$(wildcard $1/*),$(call rwildcard,$(elem),$2)) $(wildcard $(addprefix $1/,$2)) # Testfiles and dependent variables are recursively expanded so we @@ -164,7 +166,11 @@ $(modules): clean osfamily := $(shell facter osfamily|tr A-Z a-z) # Possible values for fakeroot are: fakeroot, fakeroot-ng -# (nonfunctional) and empty (noop). +# (nonfunctional), empty (noop) and sudo. +# Sudo will require a line like +# %puppet-devs ALL = (root) NOPASSWD: /usr/bin/puppet apply --noop * +# in your sudoers configuration. Beware though that this will let all +# members of puppet-devs trivially escalate their priviliges. # Set it to empty on Centos/Redhat and fakeroot elsewhere. fakeroot := $(if $(filter redhat,$(osfamily)),,fakeroot) @@ -175,7 +181,7 @@ puppet-paths := --confdir smoke-testing-state/etc \ --vardir smoke-testing-state/var \ --ssldir smoke-testing-state/var/lib/puppet/ssl \ --rundir smoke-testing-state/var/run/puppet \ - --modulepath . + --modulepath $(modulepath) # Expand testenvdefs with filters: