summaryrefslogtreecommitdiffstats
path: root/fluent-bit/lib/cfl/lib/xxhash/.travis.yml
blob: 9f9e42cac46762e098432ffa013dfc6250c6c33b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
language: c

# Dump CPU info before start
before_install:
  - cat /proc/cpuinfo || echo /proc/cpuinfo is not present

matrix:
  fast_finish: true
  include:

    - name: General linux x64 tests
      arch: amd64
      addons:
        apt:
          packages:
            - g++-multilib
            - gcc-multilib
            - cppcheck
      script:
        - make -B test-all
        - make clean
        - CFLAGS="-Werror" MOREFLAGS="-Wno-sign-conversion" make dispatch  # removing sign conversion warnings due to a bug in gcc-5's definition of some AVX512 intrinsics
        - make clean
        - CFLAGS="-O1 -mavx512f -Werror" make
        - make clean
        - CFLAGS="-Wall -Wextra -Werror" make DISPATCH=1
        - make clean
        - CFLAGS="-std=c90 -pedantic -Wno-long-long -Werror" make xxhsum  # check C90 + long long compliance
        - make c90test # strict c90, with no long long support; resulting in no XXH64_* symbol
        - make noxxh3test # check library can be compiled with XXH_NO_XXH3, resulting in no XXH3_* symbol


    - name: Check results consistency on x64
      arch: amd64
      script:
        - CPPFLAGS=-DXXH_VECTOR=XXH_SCALAR make check   # Scalar code path
        - make clean
        - CPPFLAGS=-DXXH_VECTOR=XXH_SSE2 make check   # SSE2 code path
        - make clean
        - CPPFLAGS="-mavx2 -DXXH_VECTOR=XXH_AVX2" make check   # AVX2 code path
        - make clean
        - CPPFLAGS="-mavx512f -DXXH_VECTOR=XXH_AVX512" make check   # AVX512 code path
        - make clean
        - CPPFLAGS=-DXXH_REROLL=1 make check   # reroll code path (#240)
        - make -C tests/bench

    - name: macOS General Test
      os: osx
      compiler: clang
      script:
        - CFLAGS="-Werror" make   # test library build
        - make clean
        - make test MOREFLAGS='-Werror' | tee # test scenario where `stdout` is not the console

    - name: ARM compilation and consistency checks (Qemu)
      dist: xenial
      arch: amd64
      addons:
        apt:
          packages:
            - qemu-system-arm
            - qemu-user-static
            - gcc-arm-linux-gnueabi
            - libc6-dev-armel-cross
      script:
        # arm (32-bit)
        - CC=arm-linux-gnueabi-gcc CPPFLAGS=-DXXH_VECTOR=XXH_SCALAR LDFLAGS=-static RUN_ENV=qemu-arm-static make check   # Scalar code path
        - make clean
        # NEON (32-bit)
        - CC=arm-linux-gnueabi-gcc CPPFLAGS=-DXXH_VECTOR=XXH_NEON CFLAGS="-O3 -march=armv7-a -fPIC -mfloat-abi=softfp -mfpu=neon-vfpv4" LDFLAGS=-static RUN_ENV=qemu-arm-static make check   # NEON code path

    - name: aarch64 compilation and consistency checks
      dist: xenial
      arch: arm64
      script:
        # aarch64
        - CPPFLAGS=-DXXH_VECTOR=XXH_SCALAR make check   # Scalar code path
        # NEON (64-bit)
        - make clean
        - CPPFLAGS=-DXXH_VECTOR=XXH_NEON make check   # NEON code path
        # clang
        - make clean
        - CC=clang CPPFLAGS=-DXXH_VECTOR=XXH_SCALAR make check   # Scalar code path
        # clang + NEON
        - make clean
        - CC=clang CPPFLAGS=-DXXH_VECTOR=XXH_NEON make check   # NEON code path

    # We need Bionic here because the QEMU versions shipped in the older repos
    # do not support POWER8 emulation, and compiling QEMU from source is a pain.
    - name: PowerPC + PPC64 compilation and consistency checks (Qemu on Bionic)
      dist: bionic
      arch: amd64
      addons:
        apt:
          packages:
            - qemu-system-ppc
            - qemu-user-static
            - gcc-powerpc-linux-gnu
            - gcc-powerpc64-linux-gnu
            - libc6-dev-powerpc-cross
            - libc6-dev-ppc64-cross
      script:
        - CC=powerpc-linux-gnu-gcc RUN_ENV=qemu-ppc-static LDFLAGS=-static make check   # Scalar code path
        - make clean
        - CC=powerpc64-linux-gnu-gcc RUN_ENV=qemu-ppc64-static CPPFLAGS=-DXXH_VECTOR=XXH_SCALAR CFLAGS="-O3" LDFLAGS="-static -m64" make check   # Scalar code path
        # VSX code
        - make clean
        - CC=powerpc64-linux-gnu-gcc RUN_ENV="qemu-ppc64-static -cpu power8" CPPFLAGS=-DXXH_VECTOR=XXH_VSX CFLAGS="-O3 -maltivec -mvsx -mcpu=power8 -mpower8-vector" LDFLAGS="-static -m64" make check   # VSX code path
        # altivec.h redefinition issue #426
        - make clean
        - CC=powerpc64-linux-gnu-gcc CPPFLAGS=-DXXH_VECTOR=XXH_VSX CFLAGS="-maltivec -mvsx -mcpu=power8 -mpower8-vector" make -C tests test_ppc_redefine

    - name: PPC64LE compilation and consistency checks
      dist: xenial
      arch: ppc64le
      script:
        # Scalar (universal) code path
        - CPPFLAGS=-DXXH_VECTOR=XXH_SCALAR LDFLAGS=-static make check
        # VSX code path (64-bit)
        - make clean
        - CPPFLAGS=-DXXH_VECTOR=XXH_VSX CFLAGS="-O3 -maltivec -mvsx -mpower8-vector -mcpu=power8" LDFLAGS="-static" make check
        # altivec.h redefinition issue #426
        - make clean
        - CPPFLAGS=-DXXH_VECTOR=XXH_VSX CFLAGS="-maltivec -mvsx -mcpu=power8 -mpower8-vector" make -C tests test_ppc_redefine

    - name: IBM s390x compilation and consistency checks
      dist: bionic
      arch: s390x
      script:
        # Scalar (universal) code path
        - CPPFLAGS=-DXXH_VECTOR=XXH_SCALAR LDFLAGS=-static make check
        # s390x code path (64-bit)
        - make clean
        - CPPFLAGS=-DXXH_VECTOR=XXH_VSX CFLAGS="-O3 -march=arch11 -mzvector" LDFLAGS="-static" make check

    - name: cmake build test
      script:
        - cd cmake_unofficial
        - mkdir build
        - cd build
        - cmake ..
        - CFLAGS=-Werror make