Opened 7 months ago

Closed 6 months ago

#18719 closed defect (fixed)

A few tests fail on ppc64le and s390x Linux architectures

Reported by: swt2c Owned by:
Priority: low Milestone:
Component: base Version: 3.1.3
Keywords: simple linux Cc:
Blocked By: Blocking:
Patch: no

Description

This is obviously a pretty low priority, but it would be nice if these tests passed. As best as I can tell, these look like problems with the tests, rather than with wx itself.

ppc64le:

+ ./test
Test program for wxWidgets non-GUI features
build: 3.1.3 (wchar_t,compiler with C++ ABI compatible with gcc 4,wx containers,compatible with 3.0)
running under Linux 5.5.10-200.fc31.ppc64le ppc64le as mockbuild, locale is C
execvp(xclock) failed with error 2!
execvp(xclock) failed with error 2!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
test is a Catch v1.12.2 host application.
Run with -? for options
-------------------------------------------------------------------------------
wxFile::Special
-------------------------------------------------------------------------------
../../tests/file/filetest.cpp:145
...............................................................................
../../tests/file/filetest.cpp:162: FAILED:
  CHECK( fileSys.Length() == 4096 )
with expansion:
  65536 == 4096 (0x1000)
-------------------------------------------------------------------------------
wxFileName::GetSizeSpecial
-------------------------------------------------------------------------------
../../tests/filename/filenametest.cpp:1056
...............................................................................
../../tests/filename/filenametest.cpp:1063: FAILED:
  CHECK( wxFileName::GetSize("/sys/power/state") == 4096 )
with expansion:
  65536 == 4096 (0x1000)
with message:
  size of /proc/kcore=3377699731079168
===============================================================================
test cases:     133 |     131 passed | 2 failed
assertions: 1284211 | 1284209 passed | 2 failed

s390x:

+ ./test
Test program for wxWidgets non-GUI features
build: 3.1.3 (wchar_t,compiler with C++ ABI compatible with gcc 4,wx containers,compatible with 3.0)
running under Linux 5.5.10-200.fc31.s390x s390x as mockbuild, locale is C
execvp(xclock) failed with error 2!
execvp(xclock) failed with error 2!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
test is a Catch v1.12.2 host application.
Run with -? for options
-------------------------------------------------------------------------------
wxTextFile::Special
  /sys
-------------------------------------------------------------------------------
../../tests/textfile/textfiletest.cpp:354
...............................................................................
../../tests/textfile/textfiletest.cpp:360: FAILED:
  CHECK( f[0].find("mem") != wxString::npos )
with expansion:
  18446744073709551615 (0xffffffffffffffff)
  !=
  18446744073709551615 (0xffffffffffffffff)
with message:
  /sys/power/state contains "disk"
===============================================================================
test cases:     133 |     132 passed | 1 failed
assertions: 1284211 | 1284210 passed | 1 failed

Change History (8)

comment:1 Changed 7 months ago by vadz

  • Keywords simple linux added
  • Status changed from new to confirmed

Yes, I'm afraid I was just too cavalier with these tests.

It would be nice to find some special file whose contains we could rely on, but I'm not sure what could it be, any ideas would be welcome. For now I guess we can relax the test to check for "mem" or "disk" and to also check that the size is >= 4096 rather than exactly equal to it (or perhaps the size of the file is the page size and we should check for this?).

Out of curiosity, is there any way to run tests on these machines somehow? I.e. is there any publicly accessible CI service building on these archs?

comment:2 Changed 7 months ago by sharkcz

  • Cc dan@… added

The first ppc64le one looks like a page size issue - we use 64kB on ppc64le, while x86 uses 4kB.

comment:3 Changed 7 months ago by sharkcz

  • Cc dan@… removed

CI is available in Travis for aarch64, ppc64le and s390x as the non-x86 arches

comment:5 Changed 7 months ago by sharkcz

  • Cc dan@… added

If you would need developer access to ppc64le or s390x machines, let me know. This is in addition to the regular https://fedoraproject.org/wiki/Test_Machine_Resources_For_Package_Maintainers

comment:6 Changed 7 months ago by vadz

  • Cc dan@… removed

Thanks! So we should just use sysconf(SC_PAGESIZE) instead of hardcoding 4096 and enable these architectures in our .travis.yml if Travis supports them. I'll try to do it just because it's always nice to build on more archs, as it sometimes allows to find bugs that went unnoticed elsewhere, even if chances of actually running wx apps on s390x seem relatively slim.

comment:7 Changed 7 months ago by swt2c

I sent a PR for fixing the tests, but not enabling these arches in travis:
https://github.com/wxWidgets/wxWidgets/pull/1784

comment:8 Changed 6 months ago by vadz

  • Resolution set to fixed
  • Status changed from confirmed to closed

This should have been fixed by merging PR 1783 in 6fcf28513685f6926d72f9c02bd0f2e876d9b588.

Note: See TracTickets for help on using tickets.