aboutsummaryrefslogtreecommitdiffstats
path: root/test
AgeCommit message (Collapse)Author
2017-04-25Stylistic changes to makedep tests2017.04.25Loïc Hoguin
2017-04-25core/erlc.mk: added src subfolders support in makedep.erlOleksiy Kebkal
2017-04-25Improve the newly added testLoïc Hoguin
2017-04-25Accumulate eunit failures in multi-appsStanislav Ovchar
2017-04-25compile apps in the right order by looking at their LOCAL_DEPSJeffrey Griffin
we also use LOCAL_DEPS at the top-level, if it exists, to determine which local apps to compile, in the interest of saving compile time for projects that have many apps and multiple release configurations
2017-04-25fix removing deps.log at toplevel when in a multi-app layoutJeffrey Griffin
`rm deps.log` was not being executed, because of 1) the ifeq around it, checking for an empty ALL_DEPS_DIRS, which i believe was a logical error; and 2) deps depended on apps, which means apps were compiled before its recipe was executed, and the `rm deps.log` would be executed after it had been written to by recursive make of the apps. the important reason to remove deps.log is so that dependencies get remade when they change. otherwise you'll get mysterious errors about missing dependencies if they need to be rebuilt, or worse, have wrong stale beam files bundled in your release. tests core-deps-apps and core-deps-apps-only now manually clean the cowlib dep and rebuild at the top-level to make sure cowlib gets rebuilt. both tests indeed fail without this fix. this attempts to fix #1 by removing the ifeq, and #2 by having deps and apps depend on deps.log, with deps.log 'built' (but actually removed) by a double-colon rule with no prerequisites (which means its recipe always be run).
2017-04-25Use $(if) instead of ifeq and add a test for RELX_TAR=0Loïc Hoguin
2017-04-10Only makedep and build asn1/xrl/mib files when necessaryLoïc Hoguin
Because we were unconditionally including the makedep file, it would be built even if the target was unrelated (like "make help"), and it would also trigger building of xrl and other files that produce Erlang code. Instead the makedep file is now included as a wildcard: if it exists it gets included, if it doesn't it's not, and if it's created in the middle of execution it gets included only then. More details on the technique can be found at http://make.mad-scientist.net/papers/advanced-auto-dependency-generation/ A test has been added to make sure the behavior does not come back at a later time.
2017-01-12Set ASN.1 compilation options using ERLC_ASN1_OPTS2017.01.12Klas Johansson
`ERLC_ASN1_OPTS` can be used to pass compiler options when compiling ASN.1 files. By default, Erlang.mk will leave this empty, but it can be redefined in a Makefile.
2016-12-19plugins/escript.mk: Remove $(ESCRIPT_FILE) in distclean-escriptJean-Sébastien Pédron
... not $(ESCRIPT_NAME), which can be set to another value. While here, add a testcase for `make distclean`.
2016-11-29Give ebin paths when creating the PLTLoïc Hoguin
Before we had Dialyzer look for BEAM files in every subfolders of every deps. This resulted in the PLT bundling extra files and/or Dialyzer failing because some of them are not built with +debug_info, or because there are duplicates (in test logs for example). Now Dialyzer will only look in ebin/.
2016-11-26Add CT_LOGS_DIRnevar
2016-11-01Test asciidoc with more than one man sectionLoïc Hoguin
2016-10-31Switch asciidoc-manual to using AsciideckLoïc Hoguin
This is a start for moving from Python's Asciidoc to the Erlang implementation. Please report any issue with this change, I will fix everything at lightning speed!
2016-10-30Greatly improve the escript supportLoïc Hoguin
The plugin can now easily generate escripts as complex as relx or rebar/rebar3. It generates a proper structure and allows embedding extra files by extending the escript-zip target. Documentation and tests have been added.
2016-10-29Small tweak to make it easier for me to notice test failuresLoïc Hoguin
2016-10-29Fix broken test on OSXLoïc Hoguin
2016-10-28Make the relx tests work on FreeBSD/OSXLoïc Hoguin
2016-10-28Add "make relup"Loïc Hoguin
The initial documentation is a bit rough. It's getting late and I'd like to have this in sooner rather than later. :-)
2016-10-28Tweak Relx testsLoïc Hoguin
2016-10-28add tests for relx pluginderwinlu
* relx-rel + check that relx gets downloaded when relx.config exists, + check structure of built release + check that _rel directory does not get delete by 'make clean' * relx-run + build a simple release, check if it starts and stops normally * relx-rel-tar + check if RELX_OPTS are respected via supplying the 'tar' target * relx-distclean-relx + check that relx executable gets deleted * relx-distclean-relx-rel + check that _rel directory gets deleted * relx-relup + check if relup generation is possible and generated relup is working add sleeps after calls to async actions of the relx boot script
2016-10-28Use an intermediate timestamp file to know when to touch source filesJean-Sébastien Pédron
The previous approach spawned a shell for every single source files. As we disable parallel make jobs, this is very time consuming. The new approach uses an intermediate timestamp file in $(ERLANG_MK_TMP) to record the last modification of any of $(MAKEFILE_LIST) and touch all source files in one command. Then, the .app file depends on this timestamp file. We test the existence of this timestamp file: if if doesn't exist, don't touch source files, they will be built anyway. $(PROJECT).d now depends directly on $(MAKEFILE_LIST); before, this dependency was indirect through $(ERL_FILES). Also, once $(ERL_FILES) were touched, we do the same with $(PROJECT).d because there is no need to regen it because of this.
2016-10-25core/deps-tools.mk: New targets `fetch-deps` and `list-deps`Jean-Sébastien Pédron
.. to fetch and list deps recurvively. Therefore, they work on direct dependencies, dependencies' dependencies, and so on. Nothing is built with those targets. The following targets are also available to work on other kinds of dependencies: make fetch-doc-deps make fetch-rel-deps make fetch-test-deps make fetch-shell-deps make list-doc-deps make list-rel-deps make list-test-deps make list-shell-deps In all cases, they include "normal" and eg. "test" dependencies of the top-level project, then only "normal" dependencies' dependencies. It's possible to include several kinds in one go: make fetch-deps DEP_TYPES='doc test' make list-deps DEP_TYPES='doc test' As it may be difficult to use the output of `make list-*` because the list could appear after other targets output (like dependencies fetching), the list is available in files pointed by the following variables: $(ERLANG_MK_RECURSIVE_DEPS_LIST) $(ERLANG_MK_RECURSIVE_DOC_DEPS_LIST) $(ERLANG_MK_RECURSIVE_REL_DEPS_LIST) $(ERLANG_MK_RECURSIVE_TEST_DEPS_LIST) $(ERLANG_MK_RECURSIVE_SHELL_DEPS_LIST) Internally, `list-deps` is simply implemented on top of `fetch-deps`: the latter fills a sorted log with all the directories it traversed. `list-deps` finally just prints the log file to stdout. Fixes #560.
2016-10-23Support PROJECT_APP_EXTRA_KEYS to add keys to the .app fileJean-Sébastien Pédron
This allows to add standard keys which do not have a corresponding `PROJECT_` Makefile variable, as well as non-standard keys.
2016-10-21Update Copyright notices2016.10.21Loïc Hoguin
2016-10-20Add a test that included templates are relative to the originalLoïc Hoguin
2016-10-20Fix several problems with the erlydtl plugin:Jared Flatow
DTL_SUFFIX: - make sure it is actually used - add a test for it (and one combined with other options) DTL_PATH: - handle correctly with or without trailing / - don't hard-code the `doc_root` opt - the erlydtl default is better
2016-10-19Escape % in app_file templatenevar
2016-10-19Add PROJECT_ENVnevar
Fix #587
2016-10-19Cosmetic changes to previous mergeLoïc Hoguin
2016-10-19Added test for defining yecc header file.Micah Warren
2016-09-13Merge branch 'fix-dialyzer-ERLC_OPTS-filtering' of ↵Loïc Hoguin
https://github.com/rabbitmq/erlang.mk
2016-09-09Remove an unnecessary step in dialyzer-beam testLoïc Hoguin
2016-09-09Add a test for using Dialyzer against BEAM filesLoïc Hoguin
2016-09-08dialyzer.mk: Use the shell to parse command line argsJean-Sébastien Pédron
Splitting arguments on `-` was dangerous: if a path contained such a character, it would be split and the second half thrown away by the filtering. Now, `$(ERLC_OPTS)` is passed to erl(1) after `-extra`. Thus arguments parsing is done by the shell and we only have to call init:get_plain_arguments/0 to get them as a list.
2016-07-14Build apps/* only onceKrister Svanlund
Replicating the behavior for deps/*. With refactoring from Loïc.
2016-06-08Add a test case for custom PROJECT_MODJared Flatow
2016-05-17Add test case demonstrating issue 447.Daniel Goertzen
Erlc will not include_lib() apps that do not have an ebin/ directory. This test case demonstrates that.
2016-04-05Add test for eunit accessing priv_dircrownedgrouse
2016-04-03Use branches for all packagesLoïc Hoguin
This is a first step toward semi-automated version management. Cowboy, Cowlib and Ranch still use tags for the time being. We can make a better update to those when there's a lock feature added.
2016-04-03Add possibility to specify custom ErlyDTL optionsKrzysztof Jurewicz
2016-03-19Merge branch 'erlc-opts-sed' of https://github.com/Gatzy118/erlang.mkLoïc Hoguin
2016-03-19Merge branch 'add_tpl_empty' of https://github.com/ingwinlu/erlang.mkLoïc Hoguin
2016-03-19Merge branch 'multi_app_ct' of https://github.com/ingwinlu/erlang.mkLoïc Hoguin
2016-03-02Properly write hex dependencies in rebar.config for Rebar3Loïc Hoguin
2016-02-17Add 'module' templatederwinlu
Every .erl source file will need at least a -module and a single -export definition. With the 'module' template a file can be quickly created that already populates -module with the right value as well as an empty export field.
2016-02-08Fix ct for multi-app repositoriesderwinlu
* Include $(APPS_DIR)/*/ebin in CT_RUN * test-build before ct-apps * Test that my_lib is accessible from my-app ct
2016-01-22Use "make edoc" in the edoc testLoïc Hoguin
2016-01-09Add AsciiDoc tests and documentationLoïc Hoguin
Also fixes install-docs to allow installing regardless of being root or a normal user. The current user/group will be used for the installed files.
2016-01-09Remove legacy EDoc testsLoïc Hoguin