Commit Graph

65 Commits

Author SHA1 Message Date
ZyX
043d8ff9f2 Merge branch 'master' into luaviml'/lua 2017-04-08 01:54:58 +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
Florian Walch
24dc42e7e5 Travis: Temporarily disable TSan build.
Tests currently time out and will be fixed by @tarruda in a future PR.
2015-07-05 10:31:17 +03:00
Florian Walch
03062b8db0 Travis: Disable functional tests and allow failures for MSan.
* Functional tests fail with SIGPIPE: disable them until we
   figure out the exact problem.
 * MSan reports some warnings: allow failures for the Travis
   build to allow fixing them in individual follow-up PRs.
2015-07-05 10:31:16 +03:00
Florian Walch
fe6bd8cae2 CMake: Add option for Clang TSan, rename option ASAN -> ASAN_UBSAN. 2015-07-05 10:31:16 +03:00
Florian Walch
bd9042b1a9 CMake: Add option for Clang MSan. 2015-07-05 10:31:16 +03:00
Rui Abreu Ferreira
f65614fb1c Travis: Add Mingw third-party builds
- Build third-party/ in Travis using mingw
- Import mingw-w64 cmake toolchain
2015-05-15 17:55:02 +03:00
grtlr
1b07f5711c Travis: Remove unused dependencies #2431 2015-04-16 18:25:03 +03:00
Florian Walch
1882598e71 Travis: Disable building 'nightly' tag. 2015-04-08 20:38:36 +03:00
Thiago de Arruda
6cfc91c0b9 travis: Configure to notify gitter chat room 2015-03-17 20:36:45 -03:00
Florian Walch
2eda611cbc Travis: Fail fast, disable JIT for functional tests.
Disable JIT to find cause for random `PANIC: unprotected error in call to Lua API` on Travis (OS X).
2015-02-02 17:23:03 +01:00
Florian Walch
2e28f78971 Travis: Fix OS X builds. 2015-01-29 16:52:47 +01:00
Florian Walch
e11a94e5b6 Travis: Remove setting core file size.
Doesn't work on Travis:

> bash: line 0: ulimit: core file size: cannot modify limit: Operation not permitted
2014-12-14 21:42:36 +01:00
Florian Walch
ddaa481236 Travis: Add flag to force building of dependencies. 2014-12-14 21:42:30 +01:00
Florian Walch
987ee79bb7 Travis: Prepare for OS X builds.
* Use bot-ci script at to set up prebuilt dependencies.
 * Make CI scripts more consistent.
2014-11-28 22:57:18 +01:00
Florian Walch
75335f01a0 Travis: Remove Coverity build.
Coverity is now handled by neovim/bot-ci.
2014-11-16 20:39:24 +01:00
Thiago de Arruda
b320904382 travis: Force travis build to fail when core files are dumped 2014-11-03 21:51:44 -03:00
Thiago de Arruda
6f5f3faa84 travis: Setup xvfb for running xclip tests 2014-10-23 21:19:08 -03:00
Thiago de Arruda
0c2ec77ae0 test: Use lua to perform sanity API checks
Sanity API checks made by the python-client in the api-python travis target were
converted to lua and will now live in this repository. This will simplify
performing breaking changes to the API as it won't be necessary to send parallel
PRs the python-client.
2014-10-16 14:06:54 -03:00
Thiago de Arruda
42d5b526b9 test: Replace vroom by lua/busted for functional tests
The 'lupa' python package provides a simple way to seamless integrate lua and
python code.

This commit replaces vroom by a python script that exposes the 'neovim' package
to a lua state, and invokes busted to run functional tests. This is a temporary
solution that will enable writing functional tests using lua/bused while a lua
client library is not available.

The reason for dropping vroom is flexibility: Lua/busted has a nice DSL-style
syntax while also providing the customization power of a full programming
language. Another reason is to use a single framework for unit/functional tests.

Two other changes were performed in this commit:

- Instead of "gcc-unittest/gcc-ia32", the travis builds for gcc are now
  identified by "gcc/gcc-32". They will run unit/functional tests for both 64
  and 32 bits.
- Old integration tests(in src/nvim/testdir) are now ran by the 'oldtest' target
2014-09-30 17:37:16 -03:00