Commit Graph

24 Commits

Author SHA1 Message Date
Jakub Sztandera
dd63187826
make: make default rule 'aggregate' in sharness
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-12 01:18:40 +01:00
Jakub Sztandera
f77d01a965
make: add dummy makefile in sharness directory
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-12 01:18:40 +01:00
Jakub Sztandera
f630222580
make: rework makefiles for non-recursive make and add sharness coverage
This commit introduces non-recursive Makefile infrastructure that replaces current Makefile infrastructure.
It also generally cleanups the Makefiles, separates them into nicer sub-modules and centralizes common operations into single definitions.

It allows to depend on any target that is defined in the makefile, this means that for example `gx install` is called once when `make build test_expensive_sharness` is called instead of 4 or 5 times.

It also makes the dependencies much cleaner and allows for reuse of modules. For example sharness coverage collection (WIP) uses sharness target with amended PATH, previously it might have been possible but not without wiring in the coverage collection into sharness make runner code.

Yes, it is more complex but not much more. There are few rules that have to be followed and few complexities added but IMHO it is worth it.

How to NR-make:
1. If make is to generate some file via a target, it MUST be defined in Rules.mk file in the directory of the target.
2. `Rules.mk` file MUST have `include mk/header.mk` statement as the first line and `include mk/footer.mk` statement as the last line (apart from project root `Rules.mk`).
3. It then MUST be included by the closest `Rules.mk` file up the directory tree.
4. Inside a `Rules.mk` special variable accessed as `$(d)` is defined. Its value is current directory, use it so if the `Rules.mk` file is moved in the tree it still works without a problem. Caution: this variable is not available in the recipe part and MUST NOT be used. Use name of the target or prerequisite to extract it if you need it.
5. Make has only one global scope, this means that name conflicts are a thing. Names SHOULD  follow `VAR_NAME_$(d)` convention. There are exceptions from this rule in form of well defined global variables. Examples: General lists `TGT_BIN`, `CLEAN`; General targets: `TEST`, `COVERAGE`; General variables: `GOFLAGS`, `DEPS_GO`.
3. Any rules, definitions or variables that fit some family SHOULD be defined in `mk/$family.mk` file and included from project root `Rules.mk`

License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2017-02-12 01:18:40 +01:00
Jeromy
5457a85cef
Merge branch 'version/0.4.3-rc4'
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-09-20 19:10:10 -07:00
Jeromy
af914c5193 add better test to be more sure that file descriptor limits were actually raised
License: MIT
Signed-off-by: Jeromy <why@ipfs.io>
2016-09-02 07:15:08 -07:00
Jakub Sztandera
f012b5aed5
test: add go-timeotu to test build system
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2016-09-01 15:59:11 +02:00
Jakub Sztandera
cc60f6909b make: cleanup -rm calls
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2016-08-04 16:38:00 +02:00
Jakub Sztandera
f3dc11c566 use $(MAKE) instead of 'make' in Makefiles
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2016-08-04 16:38:00 +02:00
Jakub Sztandera
63072758a9 make: use 'make -C' instead of 'cd && make'
License: MIT
Signed-off-by: Jakub Sztandera <kubuxu@protonmail.ch>
2016-08-04 16:38:00 +02:00
Christian Couder
d4e7287980 sharness/Makefile: check global dependencies
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2016-04-30 07:17:36 +02:00
Richard Littauer
f60ae0a1b9 Capitalized NOTE, first letter of following word
License: MIT
Signed-off-by: Richard Littauer <richard.littauer@gmail.com>
2016-04-29 16:57:19 -04:00
Christian Couder
908fb95bb1 sharness/Makefile: clean all BINS when cleaning
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2016-04-03 13:02:04 +02:00
Juan Batiz-Benet
431d6a5a14 added random-files tool for testing
License: MIT
Signed-off-by: Juan Batiz-Benet <juan@benet.ai>
2015-07-29 03:18:24 -07:00
Christian Couder
ac9f441f1f sharness/Makefile: force sharness version check
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-06-13 22:39:37 +02:00
Christian Couder
fd449af227 test/Makefile: build go-sleep
License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-06-07 10:28:13 +02:00
Jeromy
89ff6dfdaa add clone of 3node test using iptb instead of docker
rename directory and update vendored dep

cleanup
2015-04-22 21:25:52 -07:00
Tor Arne Vestbø
7b49419d93 Fix dependencies in sharness test makefile
Running make -jN would result in the tests starting to execute
before the tests binaries were built, resulting in the error:

 "Cannot find the tests' local ipfs tool"

Each test now depends on the deps. They also depend on a new
target for cleaning the test results, so that the tests can
write new clean results.

The aggregate target also needs to depend on the same test
results clean target, as well as the tests themselves, so
that the aggregation happens when all tests have finished
running.

By introducing a separate target for cleaning test results we
also ensure that we don't end up removing and rebuilding
the binary on each test run.

The result is that the tests *can* be run with with -jN > 1,
but individual tests may still not supports this, so to get
stable test results it's still recommended to run them in
sequence.
2015-04-07 21:21:58 +02:00
Christian Couder
dbf91a19a1 test/sharness: add GOFLAGS variable and race target
The GOFLAGS variable makes it possible to run all sharness
tests with go binaries built with some special flags.

The "race" target makes it easy run the sharness tests
with go binaries built with the -race flag.

License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-04-06 18:06:24 +02:00
Henry
aa745fef07 specify new dep in sharenss Makefile 2015-03-04 15:06:26 +01:00
Christian Couder
fe1ba2bf18 test: use multihash instead of shasum in tests
As shasum is not installed on all machines and
we use multihash anyway in the code base, it
removes one dependency to use shasum instead of
shasum in the tests.

Now that there are sharness tests in multihash
it is also safe to use it.

License: MIT
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
2015-02-08 13:35:45 +01:00
Juan Batiz-Benet
8ce304014c require curl 2015-02-01 00:10:48 -08:00
Brian Tiger Chow
53f201cea9 fix(test/sharness/Makefile): remove ipfs binary when cleaning 2015-01-13 03:09:31 -08:00
Juan Batiz-Benet
05a0a944ce makefile: fix target in sharness tests 2015-01-10 01:07:43 -08:00
Juan Batiz-Benet
cecfa45745 moved sharness tests to a subdir.
kept bin in place
2015-01-07 07:10:17 -08:00