Commit Graph

83 Commits

Author SHA1 Message Date
James McCoy
4487657576
travis: Disable LuaJIT for functionaltest-lua build
Since we're already using Lua for the testing this allows us to ensure
our build still works properly without LuaJIT available.
2018-02-02 07:28:49 -05:00
Justin M. Keyes
f0845197d8 ci/travis: require "sudo" for ASAN_UBSAN build
Workaround for this fun new issue:

    ==27404==LeakSanitizer has encountered a fatal error.
    ==27404==HINT: For debugging, try setting environment variable LSAN_OPTIONS=verbosity=1:log_threads=1
    ==27404==HINT: LeakSanitizer does not work under ptrace (strace, gdb, etc)
    Failed: E /build|logs :: Runtime errors detected.

https://github.com/travis-ci/travis-ci/issues/9033
https://github.com/google/sanitizers/issues/764
2018-01-10 23:35:10 +01:00
James McCoy
d162815ca9
travis: Reduce stages to flaky builds (gcov, tsan) and everything else
Separating the non-flaky builds (asan, normal builds, lint) into
separate stages simply slowed down overall CI turnaround.  Since none of
the builds rely on the output of others, reducing the stages increases
the opportunities for parallel builds.
2018-01-02 08:15:31 -05:00
James McCoy
dc1444e112
travis: Remove ubuntu-r-toolchain/test ppa
Use unversioned gcc/gcov commands rather than pulling in a separate
repo.
2018-01-02 08:15:31 -05:00
James McCoy
90aae43984
travis: Use Ubuntu's clang instead of llvm's repo
The llvm repos commonly have access issues, so removing them will
improve stability of the Travis builds.

Filtering check_log's output through asan_symbolize also avoids the
version dance every time a new clang version makes its way into Travis.
2018-01-02 08:15:31 -05:00
James McCoy
a2947a46a1
travis: Move TSAN to last stage and allow failure
TSAN build has been much less reliable lately, so it shouldn't hold up
the other tests.
2017-08-13 10:01:39 -04:00
James McCoy
a4825ebd5c
ci: Bump clang version to 4.0 2017-06-15 00:14:57 -04:00
Justin M. Keyes
eb6dd3e42d ci: Dump $NVIM_LOG_FILE contents 2017-06-07 00:26:21 +02:00
Justin M. Keyes
fe1af9c2bc log: Always enable; remove DISABLE_LOG
- Establish ERROR log level as "critical". Such errors are rare and will
  be valuable when users encounter unusual circumstances.
- Set -DMIN_LOG_LEVEL=3 for release-type builds
2017-06-07 00:26:21 +02:00
James McCoy
6e4e70f51b ci: Enable staged builds (#6739)
This should better allow distributing the load among PRs, while getting
critical feedback to the submitter sooner.

First stage runs the ASAN/UBSAN/TSAN since any failures in those are
gating issues.

Second stage runs the rest of the normal builds in parallel.

Remaining stages provide lower priority feedback.  The lint build runs
fast locally, so it's better to run that locally than wait on CI.  The
coverage build is pretty fickle, so it is only run once all other jobs
are green.
2017-05-14 06:46:30 +02:00
Florian Walch
7383274f66 cmake: Support building without LuaJIT. #6736
Compile `nvim` executable against Lua if PREFER_LUA=ON.

As the testing library `nvim-test` requires LuaJIT, it is
still compiled against LuaJIT. If LuaJIT is not available,
`nvim-test` is not built.
2017-05-13 16:59:06 +02:00
ZyX
09f849b600 Merge branch 'master' into luaviml'/lua 2017-05-08 15:43:45 +03:00
Justin M. Keyes
13ec521414 ci: DISABLE_LOG (#6498)
Should make builds slightly faster. We don't use these logs on CI.

References #6169
2017-05-02 15:04:47 +02:00
Björn Linse
69775f603f ci: install Turkish locale and make locale tests more reliable 2017-04-11 10:24:19 +02:00
ZyX
ab4d13e2fa Merge branch 'master' into luaviml'/lua 2017-04-10 22:21:06 +03:00
ZyX
6f5e87e4aa tests: Rename neovim output handler to nvim 2017-04-10 03:51:51 +03:00
ZyX
d909724d70 tests: Use our own output handler on travis
Reasoning:

1. gtest is better then something like utfTerminal, yet it is way too verbose.
2. gtest cannot be configured to show colors always.
3. Actually I am going to add a CMake target which will allow running tests 
   (especially, functional tests) in parallel, but this is not going to work 
   well with any of the default output handlers. Build in this case must be more 
   or less silent, yet debuggable. New handler does not support this in this 
   commit though.
2017-04-10 02:32:09 +03:00
ZyX
043d8ff9f2 Merge branch 'master' into luaviml'/lua 2017-04-08 01:54:58 +03:00
ZyX
c1416e0665 ci: Really continue tests on failure, print global summary 2017-04-07 00:46:52 +03:00
James McCoy
a7569b50b7 Merge pull request #6338 from jamessan/llvm-update
Bump LLVM to 3.9
2017-04-01 20:09:26 -04:00
James McCoy
4bae3f48fe ci: Bump clang version to 3.9 2017-03-31 10:03:43 -04:00
James McCoy
1b276be6e5 ci: Use LLVM's trusty repo to match Travis' Ubuntu version 2017-03-31 10:03:43 -04:00
ZyX
2bf9d36ccd ci: Refactor CI scripts
1. CI_TARGET now determines which run_${CI_TARGET}.sh script to use. Defaults to
   `tests`.
2. Build no longer halts on the first failing suit: e.g. if functional tests
   failed it will continue with unit tests, etc.
3. All ${MAKE_CMD} occurrences moved to `top_make` function, added `build_make`
   as an alias to `make -C build` (`"${MAKE_CMD}" -C "${BUILD_DIR}"`) which is
   too verbose.

`suite.sh` was copied from powerline (tests/common.sh file), assumes running
with POSIX shells (and actually uses dash in powerline). Then some convenience
functions were added (run_test and below).
2017-03-31 16:06:17 +03:00
Nikolai Aleksandrovich Pavlov
a1c928e70c ci: Do not hide ci directory (#6410) 2017-03-31 14:32:58 +02:00
ZyX
8fec4d53d0 ci: Make ASAN build link with lua, build lua with address sanitizer 2017-03-27 00:12:23 +03:00
Justin M. Keyes
039c7ab607 ci: MIN_LOG_LEVEL=2 (#6169)
DEBUG_LOG_LEVEL is very noisy and causes a lot of disk activity.
It is not needed on CI.
2017-02-24 11:03:56 +01:00
ZyX
d670591887 ci: Better core dump checking
- Do not exclude any directories from `find` search, remove dumps before tests
  instead.
- Install `apport` on travis so that linux tests should produce core dumps
  (based on information from travis-ci/travis-ci#3754, not sure whether it still
  applies).
- Check cores in lua so that one has an idea which test is failing exactly. Do
  this only 10% of time on linux because traversing the file system is slow.

Unit tests are still not touched, though it is what `app` argument in
`check_cores` is for.

TODO? consider using `find`, it may be faster. Consider retiring `os.execute`,
      dealing with escaping is bad.
2017-02-14 00:33:52 +03:00
James McCoy
9009c20edb Merge pull request #5827 from justinmk/travisupdate
ci: Install cscope, remove deadsnakes PPA
2016-12-27 23:25:24 -05:00
Marco Hinz
10d7a45e00
CI: allow GCOV build to fail 2016-12-28 00:54:52 +01:00
Justin M. Keyes
f2be05d6a3 ci: Install cscope, remove deadsnakes PPA
The travis ubuntu "trusty" image already pre-installs python 3.5.
https://docs.travis-ci.com/user/trusty-ci-environment
2016-12-27 23:41:49 +01:00
Justin M. Keyes
8950beeb04 ci: Upgrade to ubuntu 14.04 "trusty" 2016-12-27 23:41:49 +01:00
James McCoy
6d727657c8
ci: Make ubsan print out a stacktrace when it finds a problem 2016-11-23 20:29:59 -05:00
James McCoy
b6a090b4fd
tsan: Compile with -fPIE and force clang-3.8
This fixes failures with TSAN builds like

    FATAL: ThreadSanitizer can not mmap the shadow memory (something is mapped at 0x55deea465000 < 0x7cf000000000)
    FATAL: Make sure to compile with -fPIE and to link with -pie.
2016-11-23 20:29:51 -05:00
Justin M. Keyes
91e9c0a7ee ci: .travis.yml: Minimize scope of osx_image directive. (#5420) 2016-10-02 03:37:17 +02:00
Justin M. Keyes
e6d32c1010 ci: .travis.yml: Upgrade to macOS 10.11 / xcode7.3 (#5378)
Update to a recent, but not bleeding-edge, version of macOS and xcode.
At present, travis defaults to OS X 10.9.5 / Xcode 6.1.
QuickBuild runs macOS 10.10.
2016-09-23 17:06:54 +02:00
Rui Abreu Ferreira
55682710a9 Travis: Remove MinGW builds
MinGW builds in Travis have been disabled for a while now, and some
of the upcoming patches will break cross compilation even further.
2016-08-01 12:57:58 +01:00
Florian Walch
f639c97c72 Travis: Run GCov on GCC-5 build.
Running coveralls with llvm-cov doesn't seem to work.
2016-07-17 13:57:16 +02:00
Justin M. Keyes
57b56e37e5 ci: Remove MSAN build until it is fixed. (#4966)
Closes #4956
2016-06-25 18:49:28 -04:00
Justin M. Keyes
b121d85376 travis: remove LLVM apt PPA; fallback to clang 3.4
LLVM has shut down their apt PPA until further notice.
2016-05-31 19:03:00 -04:00
Thiago de Arruda
6674930d7c Add travis build for lua functionaltest 2016-03-07 14:38:46 -03:00
Rui Abreu Ferreira
72d03cc961 cmake: Pass -DMIN_LOG_LEVEL as compiler definition
- Check if MIN_LOG_LEVEL value is a number 0-3, default to
  INFO (1) or ignore it in Release mode
- When TRAVIS_CI_BUILD is ON the default is DEBUG (0)
- Add local.mk.example
2016-01-10 17:06:53 +00:00
Justin M. Keyes
22a928aeac test: change CI_TARGET reference to CI
Travis defines[1] $CI for its builds, whereas $CI_TARGET is
a Neovim-specific env var from 6483a198e4
that lost prominence in d2eb4a9346.

[1] https://docs.travis-ci.com/user/environment-variables/
2016-01-01 23:58:42 -05:00
Justin M. Keyes
6f25ba0550 CI/travis: enable gcov for one build only. #3926 2016-01-01 22:20:16 -05:00
ZyX
2a6da37a03 travis: Use gtest for busted output type
Current busted output type does not allow determining failing test.
2015-10-05 13:46:13 +03:00
Florian Walch
a3399f9a63 Travis: Install Python 3 to run Python 3 tests.
Install Python 3.3 from the Deadsnakes PPA. As this doesn't have pip,
install it manually into ~/.local.

~/.local/bin is apparently in Travis's default PATH, meaning "pip"
doesn't refer to Python 2's pip anymore, but to the manually
installed Python 3 version. Updated the scripts to use version-
suffixed executable names (e.g. pip2.7).

Set CC=cc to use system's default compiler when installing Python
modules, as gcc on OS X had a problem with compiling one of the
dependencies of the Neovim Python module.
2015-09-27 00:03:06 +02:00
Florian Walch
10cdf8c286 Travis: Cache third-party build directory.
Instead of just caching the third-party build output, cache the full
build directory. Always run make to ensure that updated dependencies
are downloaded.
2015-09-09 17:23:22 +02:00
Thiago de Arruda
9ec240e03f build: Disable gcov on TSAN builds
It seems GCOV does not play well with TSAN as it reports false data races
2015-09-06 09:18:52 -03:00
Thiago de Arruda
7eaeed112e travis: Enable TSAN for sanity checking the terminal UI 2015-09-06 09:18:52 -03:00
Florian Walch
78ec75fb60 Travis: Use gcov that matches the used compiler.
This fixes gcov/coveralls warnings like the following:

    Segmentation fault (core dumped)
    charset.c.gcno:version '501*', prefer '406*'
    Out of memory allocating 33061786568 bytes after a total of 2522648 bytes

http://stackoverflow.com/a/14676272/249642
2015-07-08 07:42:16 -03:00
Florian Walch
d2eb4a9346 Travis: Refactor CI files, use container infrastructure.
* Split build steps to utilize the Travis build lifecycle.
 * Move shell code from `.travis.yml` into Bash files in `.ci/`,
   one file for each step of the Travis build lifecycle.
 * Use configuration variables in `.travis.yml` to change
   build behavior (e.g. build 32-bit with `BUILD_32BIT=ON`).
 * Keep all configuration in environment variables in
   `.travis.yml`. In scripts, concatenate environment variables
   according to configuration to change to different behavior.
 * Add GCC 5 builds for Linux.
 * Use Travis's caching feature [1] for third-party dependencies
   and pip packages.
 * Allow failures MSan, as the errors it reports have to be
   fixed first.

Valgrind is still disabled, but can be enabled by setting
`env: VALGRIND=ON` for a job in `.travis.yml`.

[1] http://docs.travis-ci.com/user/caching
2015-07-08 07:42:16 -03:00