chore: autotest windows & linux on PR + remove 2 warnings under Linux

This commit is contained in:
Stéphane Lesimple
2020-08-29 21:44:15 +02:00
committed by GitHub
parent 49eecc0a6f
commit 3eecbcbdcc
3 changed files with 83 additions and 9 deletions

View File

@@ -3,8 +3,8 @@ name: C/C++ CI
on: [pull_request] on: [pull_request]
jobs: jobs:
build:
linux64-gui:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@@ -14,8 +14,80 @@ jobs:
- name: configure - name: configure
run: ./configure run: ./configure
- name: make - name: make
run: make run: nproc && make -j$(nproc)
- name: check executability - name: check executability
run: ./dvdisaster --version run: ./dvdisaster --version
- name: check executable
run: file dvdisaster && file dvdisaster | grep -q 'ELF 64'
- name: regression tests
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh
linux64-cli:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: install prerequisites
run: sudo apt update && sudo apt install -y libglib2.0-dev
- name: configure
run: env CLI_ONLY=1 ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executability
run: ./dvdisaster --version
- name: check executable
run: file dvdisaster && file dvdisaster | grep -q 'ELF 64'
- name: regression tests
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh
win64:
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW64
update: false
install: git diffutils make pkg-config mingw-w64-x86_64-gtk2 mingw-w64-x86_64-glib2 mingw-w64-x86_64-gcc
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executability
run: ./dvdisaster.exe --version
- name: check executable
run: file dvdisaster.exe && file dvdisaster.exe | grep -q 'x86-64, for MS Windows'
- name: regression tests
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh
win32:
runs-on: windows-2016
defaults:
run:
shell: msys2 {0}
steps:
- uses: msys2/setup-msys2@v2
with:
msystem: MINGW32
update: false
install: git diffutils make pkg-config mingw-w64-i686-gtk2 mingw-w64-i686-glib2 mingw-w64-i686-gcc
- run: git config --global core.autocrlf input
shell: bash
- uses: actions/checkout@v2
- name: configure
run: ./configure
- name: make
run: nproc && make -j$(nproc)
- name: check executability
run: ./dvdisaster.exe --version
- name: check executable
run: file dvdisaster.exe && file dvdisaster.exe | grep -q '386, for MS Windows'
- name: regression tests - name: regression tests
run: mkdir /var/tmp/regtest && ./regtest/runtests.sh run: mkdir /var/tmp/regtest && ./regtest/runtests.sh

View File

@@ -40,8 +40,8 @@
#include <windows.h> #include <windows.h>
#define stat _stati64 #define large_stat _stati64
#define lseek _lseeki64 #define large_lseek _lseeki64
/* The original windows ftruncate has off_size (32bit) */ /* The original windows ftruncate has off_size (32bit) */
@@ -62,6 +62,8 @@ int large_ftruncate(int fd, gint64 size)
#else #else
#define large_ftruncate ftruncate #define large_ftruncate ftruncate
#define large_stat stat
#define large_lseek lseek
#endif /* SYS_MINGW */ #endif /* SYS_MINGW */
/* /*
@@ -90,7 +92,7 @@ int LargeStat(char *path, guint64 *length_return)
if(!cp_path) return FALSE; if(!cp_path) return FALSE;
if(stat(cp_path, &mystat) == -1) if(large_stat(cp_path, &mystat) == -1)
{ g_free(cp_path); { g_free(cp_path);
return FALSE; return FALSE;
} }
@@ -113,7 +115,7 @@ int DirStat(char *path)
if(!cp_path) return FALSE; if(!cp_path) return FALSE;
if(stat(cp_path, &mystat) == -1) if(large_stat(cp_path, &mystat) == -1)
{ g_free(cp_path); { g_free(cp_path);
return FALSE; return FALSE;
} }
@@ -148,7 +150,7 @@ LargeFile* LargeOpen(char *name, int flags, mode_t mode)
/* Do not try to open directories etc. */ /* Do not try to open directories etc. */
if( (stat(cp_path, &mystat) == 0) if( (large_stat(cp_path, &mystat) == 0)
&& !S_ISREG(mystat.st_mode)) && !S_ISREG(mystat.st_mode))
{ g_free(cp_path), g_free(lf); return NULL; { g_free(cp_path), g_free(lf); return NULL;
} }
@@ -175,7 +177,7 @@ LargeFile* LargeOpen(char *name, int flags, mode_t mode)
int LargeSeek(LargeFile *lf, off_t pos) int LargeSeek(LargeFile *lf, off_t pos)
{ {
lf->offset = pos; lf->offset = pos;
if(lseek(lf->fileHandle, pos, SEEK_SET) != pos) if(large_lseek(lf->fileHandle, pos, SEEK_SET) != pos)
return FALSE; return FALSE;
return TRUE; return TRUE;

View File

@@ -20,7 +20,7 @@
* along with dvdisaster. If not, see <http://www.gnu.org/licenses/>. * along with dvdisaster. If not, see <http://www.gnu.org/licenses/>.
*/ */
#ifndef SYS_MINGW /* completely untested under Windows, and we don't need it for releases anyway */ #ifdef WITH_MEMDEBUG_YES
#define _GNU_SOURCE #define _GNU_SOURCE