summaryrefslogtreecommitdiff
path: root/test
Commit message (Collapse)AuthorAgeFilesLines
* Add exclude_apps/mods, plt_extra_mods, base_plt_mods configJames Fish2016-11-031-2/+36
| | | | | | | * exclude_apps - never use applications for PLT/analysis * base_plt_mods - add modules to base PLT (overrules exclude_apps) * plt_extra_mods - add modules to PLT (overrules exclude_apps) * exclude_mods - never use modules for PLT/analysis (overrules all)
* allow test specifications to be passed via the command linealisdair sullivan2016-10-171-19/+35
| | | | | | `rebar3 ct --spec foo.spec,bar.spec,baz.spec` now works also added support for the `join_specs` flag on the command line
* Prevent crashes in `rebar3 as` with no tasksFred Hebert2016-10-171-1/+16
| | | | checks on hd(...) and so on could not handle empty lists
* Merge pull request #1337 from ferd/support-aliasingalisdair sullivan2016-10-133-16/+129
|\ | | | | Properly support package aliasing and alt names
| * Track package hash in memory index, add hash testFred Hebert2016-10-041-1/+43
| | | | | | | | | | | | | | | | | | | | This adds tracking of package hash in the in-memory index rather than the current `undefined' values. According to the test added, this is not necessary for transitive package dep hash chcking, but does result in a more complete index search result when doing app lookups, and could yield some optimizations on hash checks by checking from the index structure before fetching a package.
| * Add transitive alias testsFred Hebert2016-10-041-7/+75
| |
| * Update existing tests to use new index structureFred Hebert2016-10-031-1/+4
| |
| * Properly support package aliasing and alt namesFred Hebert2016-09-271-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Aliasing only had a bit of ad-hoc support in rebar3, and various issues have encountered problems related to the package names not mapping properly with the application name. One such issue is https://github.com/erlang/rebar3/issues/1290 The problem has been hard to find because it only impacts transitive dependencies (not top-level ones) of other packages. The root cause for this is that the application name was not being tracked by rebar3's internal index, only the package name and its version were. When a given application was a package app, the data for the application name would be reconstructed from the lock file, but only if it were a top-level app or a dependency of a source application where parsing the lock file is necessary to know what comes next. When a transitive dependency of a package dependency was fetched, we instead read its dependencies directly from the in-memory package index within rebar3. This caused us to only read the package name and version, and lost all information regarding application name. This worked fine for most cases since for the vast majority of packages, the package name matches the app name, but failed for all aliases, which would then be moved to directories that wouldn't match the app name. This in turn broke some aspects of code analysis (in Dialyzer), or other functionality relying on static paths, such as including .hrl files from dependencies. This patch reformats the internal storage format of dependencies to align with the internal one used by rebar3, so that the app name can be carried along with the package name and its version. The fix can only work once `rebar3 update` is called so the index is rebuilt internally, and will the file cached on disk will be incompatible with older rebar3 versions. Currently, the following is not covered: - Tests - Including the package hashes of dependencies so they may match what is in a lock file -- they're being `undefined` instead, which may break some lookups. The previous format did not lend itself to hashing in the same way, and it is possible transitive deps were not being tracked properly, or worked by respecting the current package hierarchy. This will require further analysis For now this commit can allow reviewing and discussion.
* | Fix private includes when compiling in test profileFred Hebert2016-09-301-1/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When an include file is set in a private path (i.e. src/), the rebar3 compiler would not add them to the {i, Path} params -- only include/ and the project root were being added. This meant that when some extra source directories were added to the compile job, such as test/ when running under the test profile, the private include paths could not be shared with the test module. This patch fixes the issues (and adds tests) for such a specific case by adding all the configured include paths to the {i, Path} erl_opts arguments, yielding successful compile runs.
* | Add support for behaviors, and not just behavioursBrujo Benavides2016-09-281-1/+1
|/
* allow using an alternate regex to locate test modules during eunit runsalisdair sullivan2016-09-201-1/+25
| | | | | | | | {`eunit_test_regex`, Regex}` will use the supplied `Regex` instead of the default to locate tests in test dirs. note this matches only the filename, not the path. the regex is applied to all test dirs, recursively fixes #1331
* recompile all files when a parse transform given as an opt needs updatingalisdair sullivan2016-09-201-2/+103
| | | | | | | | | there's no way to detect which files actually rely on a parse transform passed to the compiler via the options (as opposed to `-compile(..)` so if any parse transforms are in modules that need recompiling just recompile the world fixes #1328
* Ignore mv warningsDavid de Boer2016-09-151-2/+10
| | | | | | | In some cases, mv will throw a warning, while still moving the files correctly and returning a 0 return code: "mv: can't preserve ownership of ... Permission denied".
* r15 proof cover tests``alisdair sullivan2016-08-271-1/+2
|
* use `cover:analyse(cover:modules())` for tests instead of `cover:analyse()`alisdair sullivan2016-08-271-1/+1
| | | | `cover:analyse/0` didn't exist pre-otp18
* reset accumulated coverdata on writing out to disk. this preventsalisdair sullivan2016-08-271-2/+19
| | | | | provider chains like `eunit, ct, proper` from misreporting cover stats from providers later in the sequence
* Add test suite for cover_excl_mods optionFred Hebert2016-08-271-2/+28
|
* Add tests for multi-app edoc linking workingFred Hebert2016-08-2513-0/+321
|
* Handle `escriptize` when the specified app is missingNathaniel Waisbrot2016-08-041-1/+25
| | | | | When rebar.config contains a `escript_main_app` option, but the specified app doesn't exist in the build directory, print an error.
* ssl_verify_hostname was renamed to ssl_verify_funIlya Khaprov2016-07-151-32/+24
|
* Don't error when analyzing empty appJames Fish2016-07-111-1/+15
|
* Handle empty PLTsJames Fish2016-07-111-2/+63
|
* Merge pull request #1207 from ferd/pkg-local-hash-lockFred Hebert2016-06-2210-44/+238
|\ | | | | lock file contains expected hash for pkg dependencies
| * Testing expected hash behaviour and errors in pkgsFred Hebert2016-05-254-7/+116
| | | | | | | | - also making sure unlocking works fine
| * Make tests passFred Hebert2016-05-243-11/+18
| | | | | | | | | | Tests have broken as locks were expanded and auto-filled newer versions of lockfiles. This fixes them back.
| * Test support for OTP-19Fred Hebert2016-05-241-6/+17
| |
| * Support package hashes in structure and lockfileFred Hebert2016-05-246-29/+96
| | | | | | | | | | | | | | | | | | - the internal representation for package locks moves from `{Name, {pkg, PkgName, Vsn}, Lvl}` to `{Name, {pkg, PkgName, Vsn, Hash}, Lvl}` - the internal representation for packages moves from `{pkg, PkgName, Vsn}` to `{pkg, PkgName, Vsn, Hash}` - the hash can be `undefined`, meaning no check will be done - no checking is done yet.
* | normalize include dirs to absolute paths during compilationalisdair sullivan2016-06-121-3/+42
| | | | | | | | | | | | | | | | changed include files were not properly picked up by `erlc_compiler` in cases where they were in directories relative to the application source and not the current working dir of rebar3 fixes #1199
* | Merge pull request #1232 from talentdeficit/REBAR-1184Fred Hebert2016-06-111-2/+48
|\ \ | | | | | | REBAR-1184 always recompile if `ERL_COMPILER_OPTIONS` env var is set
| * | REBAR-1184 exclude tests for `ERL_COMPILER_OPTIONS` on r15alisdair sullivan2016-06-111-2/+5
| | |
| * | REBAR-1184 always recompile if `ERL_COMPILER_OPTIONS` env var is setalisdair sullivan2016-06-111-2/+45
| | | | | | | | | | | | partially addresses #1184
* | | Merge pull request #1227 from ferd/compiler-source-formatFred Hebert2016-06-111-2/+26
|\ \ \ | | | | | | | | Compiler source paths in output are now relative
| * | | Reinstated testGarrett Smith2016-05-021-0/+1
| | | |
| * | | Option to format compiler sourcesGarrett Smith2016-05-021-2/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By default rebar3 displays compiler sources as absolute paths in their original location, which is under the build dir. This change introduces an option 'compiler_source_format' to format sources in two alternative ways: relative absolute When either 'relative' or 'absolute' are specified, the file is resolved to its original location when it is a link. When 'relative' is specified, the path is displayed relative to the current working directory. When 'absolute' is specified, the path is absolute. The default value is 'unchaged' which leaves the compiler source unchanged. This is arguably too flexible as I suspect most people would opt for 'relative' all the time - it's the most compact representation of the file and is sufficient to find the source given cwd. The change however is meant to introduce the change gradually, preserving existing behavior and giving users a choice for formats. In time perhaps the default can be changed to 'relative' - but still allowing users to revert to the other two options ('absolutel' and 'unchanged') as needed.
* | | | add support for passing a sys_config to common testTristan Sloughter2016-06-111-3/+45
| |/ / |/| |
* | | Support ENV config for proxy valuesFred Hebert2016-06-111-1/+72
| | | | | | | | | | | | | | | - The configured stuff in rebar3 takes precedence over the ENV - The env is then chosen
* | | Regression test showing the bug for umbrella appsFred Hebert2016-06-031-4/+48
| |/ |/| | | | | | | | | | | When the operation for an unlock takes place in the config of a umbrella application, the `unlock' provider does not see the dependency in the `deps' value of the config (since it only includes the deps at the root of the project) and ignores these.
* | adjust `data_dir_correct` test in ct suitealisdair sullivan2016-05-231-1/+1
| | | | | | | | don't bother checking the profile in the path to the data dir
* | don't generated coverage for `extra_src_dirs`alisdair sullivan2016-05-151-4/+4
|/ | | | closes #1057 and #1179
* Merge pull request #1121 from frojasg/feature/config-rebar-dir-using-env-varTristan Sloughter2016-04-301-2/+34
|\ | | | | Allows overwrite default cache dir using REBAR_CACHE_DIR
| * Read env var REBAR_CACHE_DIR on rebar3 only onceFrancisco Rojas2016-04-061-1/+1
| | | | | | | | | | Instead of reading every time that rebar_dir:global_cache_dir/1 is called
| * use priv_dir in rebar_dir testFrancisco Rojas2016-03-171-2/+2
| |
| * Allows overwrite default cache dir using REBAR_CACHE_DIRFrancisco Rojas2016-03-151-2/+34
| | | | | | | | | | Allows overwrite the default cache directory using the environment variable REBAR_CACHE_DIR.
* | rename dist to dist_nodeFred Hebert2016-04-011-8/+8
| |
* | Extract dist config handling, support {dist, ...}Fred Hebert2016-03-211-0/+74
|/ | | | | | | | | | | | | | | | | | This commit moves the handling of distribution config and starting out of rebar_prv_shell and into rebar_dist_utils. The module is able to handle standard config options and boot a distributed node mode. This could be used in plugins (once it is exposed) and other providers like CT. Configuration is also expanded so that options like: {dist, [{sname, atom()}, {name, atom()}, {setcookie, term()}]} can be used and will be handled as a default. The config handler supports similar terms from the command line being parsed in if the calling provider supports them. A test suite is added for configuration handling.
* move definition of 'EUNIT' macro to eunit provideralisdair sullivan2016-03-032-10/+65
| | | | add definition of 'COMMON_TEST' macro to eunit provider
* Revert "define the 'EUNIT' macro in the test profile"alisdair sullivan2016-03-031-10/+4
| | | | This reverts commit 4c32c52b557c66ac6e6764efb1ed9135c00a3c20.
* define the 'EUNIT' macro in the test profilealisdair sullivan2016-03-031-4/+10
|
* include project_plugins in plugins that can be upgradedTristan Sloughter2016-03-021-1/+42
|
* Take CT options errors and turn them to warningsFred Hebert2016-03-021-7/+7
| | | | | | | | The idea is that given we accept arbitrary config items for CT, we should similarly be able to pass unsupported options and keep things running. However for unsupported options, a warning is very useful to have.