Fix some Windows bugs in 4.x - #301
Conversation
1f80a33 to
32b8edd
Compare
|
@GitMensch Note that at least two more tests could be easily fixed (opinion needed).
Difference in error message : This is because
Any preference ?
The error is as follows: This should already be taken care of by this definition in However, |
86438d9 to
248d0db
Compare
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## gitside-master #301 +/- ##
=================================================
Coverage ? 62.94%
=================================================
Files ? 40
Lines ? 72837
Branches ? 20312
=================================================
Hits ? 45849
Misses ? 19799
Partials ? 7189 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
bb5e488 to
798d9c6
Compare
GitMensch
left a comment
There was a problem hiding this comment.
Wouldn't be the changes to build_windows be relevant for 3.x already (or did we just not merge them yet)?
Can you please commit https://github.com/OCamlPro/gnucobol/pull/300/changes upstream? I guess that will fix at least part of the MSVC issues here as well, no?
... why don't we have that much failures on MSYS2 also on 3.x? (the fileio parts are clear, these are new in 4.x and not that well tested on Windows)
Yes, I'm already preparing a PR for that - just my focus was on 4.x for now (takes time to context-switch my brain between the two branches). It will also include the fixes that also apply to 3.x (protecting the call to
Yes, will do that right now. And this has to be merged in 4.x too (I'll add it to the GC3/GC4 merge PR).
Many failures were just because of new code in 4.x. Also, some new tests in 4.x "accidentally" revealed bugs that are present in 3.x but not triggered. P.S : any suggestion regarding the two bugs mentionned in #301 (comment) ? |
dd921fd to
d002ef1
Compare
d002ef1 to
02c2865
Compare
that's reasonable for [_WIN32] - but then this should likely include /c -> [cC]: (I tend to not ignore file case, as FAT32 and NTFS case-sensitive exists on both Windows and Linux)... This should already be taken care of by this definition in common.h.... in cobinternal.h OK, that's a "new" bug in GC4 then; I understand Ron's idea with cobinternal.h, but ... am not 100% sure what to do with this and other headers splits. Please think about the general approach and then share your thoughts. For that specific test where a C test file is compiled: do we need snprintf there in first case? |
I hope we get testcases for those together with the bugfix to 3.x :-) |
02c2865 to
94d267f
Compare
| #ifndef _GNU_SOURCE | ||
| #define _GNU_SOURCE 1 | ||
| #endif |
There was a problem hiding this comment.
unrelated, just wondering - shouldn't this be in config.h as well?
There was a problem hiding this comment.
Just checked, the generated config.h already has the above _GNU_SOURCE definition (whatever the target - Linux, MSYS2 or MacOS). The static config.h for MSVC also has the same definition.
There was a problem hiding this comment.
please drop it here then
There was a problem hiding this comment.
FYI, _GNU_SOURCE is defined in 3 libcob files: numeric.c, cobcapi.c and call.c. Should it be removed in all three ?
There was a problem hiding this comment.
yes (that's 4.x only, right?), and all of those should have a very early include of config.h
b82f5b1 to
bdba87c
Compare
GitMensch
left a comment
There was a problem hiding this comment.
only request so far: Changelog... and possibly implementing changes in 3.x first
There was a problem hiding this comment.
If we don't have that test in twice (once with , once without -std=mf) then this test should be also included in 3.x (renamed, with adjusted test result) [otherwise only the "non mf" test can be copied over and/or this test be copied, but skipped with a note that dialect specific io status is not implemented yet.
There was a problem hiding this comment.
Note we have two MF-specific tests here : "MF io status (indexed)" and "Test MF Status (sequential)" (below). Both only compiled with -std=mf.
I'm fine with the idea of backporting relevant tests from 4.x to 3.x, but if we do so, wouldn't it be better to have a dedicated PR for this and do this globally - instead of sneaking in a few tests from time to time ?
bdba87c to
382703c
Compare
6a91637 to
317e03c
Compare
| lib_ci = libcobci.la | ||
| libcobci_la_SOURCES = libcobci.c fsqlxfd.c # includes fisam.c | ||
| libcobci_la_LIBADD = libcob.la $(CISAM_LIBS) | ||
| libcobci_la_LIBADD = libcob.la $(CISAM_LIBS) $(LIBCOB_LIBS) |
There was a problem hiding this comment.
I guess that works... and then we need to split those in configure.ac/Makefile.am; maybe LIBCOB_LIBS_COMMON (otherwise we'll have curses, libxml, gmp, ... here as well)?
... but in general we should have most of the others separate (as the plan is to have a split libcob-xml, libcob-json libcob-curses before the 4.x release candidate (following the io library split).
While Ron originally planned to only have that for allowing multiple libraries with the same entry point based on the same source file for "multi indexed backends" - this is something that will allow to spit libcob packaging and therefore heavily reduce the dependencies - no curses used, none needed (and also none dlopen'd - distinguished for each process).
317e03c to
57a0390
Compare
This PR fixes 20 failing tests in the Windows MSVC CI (9 tests under MSYS2).