Archive: Test failure on debian sparc (big endian)


Test failure on debian sparc (big endian)
http://experimental.ftbfs.de/fetch.p...ile=log&as=raw

g++ -o build/release/tests/endian.o -c Source/Tests/endian.cpp
Source/Tests/endian.cpp:36:47: warning: no newline at end of file
g++ -o build/release/tests/mmap.o -c Source/Tests/mmap.cpp
g++ -o build/release/tests/specmatch.o -c Source/Tests/specmatch.cpp
g++ -o build/release/tests/textrunner.o -c Source/Tests/textrunner.cpp
Source/Tests/textrunner.cpp:22:2: warning: no newline at end of file
g++ -o build/release/tests/required/dirreader.o -c Source/dirreader.cpp
g++ -o build/release/tests/required/growbuf.o -c Source/growbuf.cpp
g++ -o build/release/tests/required/mmap.o -c Source/mmap.cpp
g++ -o build/release/tests/test build/release/tests/endian.o build/release/tests/mmap.o build/release/tests/specmatch.o build/release/tests/textrunner.o build/release/tests/required/dirreader.o build/release/tests/required/growbuf.o build/release/tests/required/mmap.o -ldl -lcppunit
/build/buildd/nsis-2.14/build/release/tests/test
..F..

endian.cpp:31:Assertion
Test name: EndianTest::testFixEndian
equality assertion failed
- Expected: 2018915346
- Actual : 305419896

Failures !!!
Run: 4 Failure total: 1 Failures: 1 Errors: 0
...
Install file: "Source/exehead/uninst.ico" as ".test/Stubs/uninst"
Install file: "build/release/stub_zlib/stub_zlib.exe" as ".test/Stubs/zlib"
Install file: "build/release/stub_zlib_solid/stub_zlib.exe" as ".test/Stubs/zlib_solid"
Install file: "Source/Tests/preprocessor.nsi" as ".test/Tests/preprocessor.nsi"
Install file: "license.txt" as ".test/license.txt"
Install file: "build/release/makensis/makensis" as ".test/makensis"
Install file: "nsisconf.nsh" as ".test/nsisconf.nsh"
test_scripts(["test-scripts.log"], [".test"])
.test/makensis .test/Examples/FileFunc.nsi
Error initalizing CEXEBuild: invalid default uninstall icon
scons: *** [.test/Examples/FileFunc] Error 1
.test/makensis .test/Examples/FileFuncTest.nsi
Error initalizing CEXEBuild: invalid default uninstall icon
scons: *** [.test/Examples/FileFuncTest] Error 1
.test/makensis .test/Examples/Library.nsi
Error initalizing CEXEBuild: invalid default uninstall icon
scons: *** [.test/Examples/Library] Error 1
...

The first error is caused because -D__BIG_ENDIAN__ isn't passed to the compiler when compiling the tests. I'm not sure how to share results of the existing endianness test with the sconscript that builds and runs the tests.

The second error is fairly weird, I guess it is caused by not byte-swapping results from fread in generate_uninstall_icon_data?

The first can be solved by possibly adding test_env in the configuration scripts (SCons/config) and setting -D__BIG_ENDIAN__ to it, just like makensis_env.

The second is simply makensis not being endianity friendly.


Committed a fix for the former problem, will try and get access to a big endian debian machine for the latter. I notice that there is a patch for partial big-endian support, any reason that isn't applied yet?

http://sourceforge.net/tracker/index...49&atid=373087


Yep, this patch will not fix it all. I just takes a lot of work to get it working.

I could do it on my Apple, but sadly there are so may other higher priority Opensource tasks I want to solve first.

So feel free to pick it up but be prepared for a heavy adventure...


What do you have installed on your apple? Perhaps I could get user level access to it if you install mingw/scons?


Yes, I do have mingw, scons, pyton installed, and many other developemnt tools, but the machine is in and off regular basis.

Better buy a secondhand sparcstation will not cost more then $50, e.g. 270 Mhz UltraSparc IIi even with 20" screen.

( Which I gladly pay for you if you will invest time getting endian problems solved and native NSIS build on Solaris, Linux, BSD based OS possible. )


Hmm, shipping to Perth might cost more than the box itself.

Anyways, I would be more than happy to receive a sparc box in exchange for porting NSIS to big endian machines. I can only do it where mingw is available though - I don't want to have to go futzing around with trying to make a cross-compiler - Linux and FreeBSD have that, dunno about Solaris.

As an aside, I don't really care for Sun's attitude toward FOSS, and I'm not too enthusiastic about OpenSolaris hype and licencing, so I might just give Solaris a miss. Zealotry here I come!! :)


That patch only fixes one problem in Plugins.cpp. There are many many more. The ones that don't cause a crash will create invalid installers. All of the installer structures are written as is from memory to file.