Phoronix test suite initial haikuports recipe

Greetings…

First of all i write on a new topic because the forums software does not allow me to reply on the existing topic.

I have created a initial recipe and patchset and launcher but it is far from complete so i have it in my personal repo (it is my first porting effort anyway).I also have the hpkg for those who wish to try it immediately.

There are approx. 530 tests available.Pts downloads them and installs them on the fly so i havent tried them all.

Some graphics tests fail with “The test run did not produce a result.”

Some other tests produce crash dialogs

Some test fail because the user should be root (i will bypass the detection next time i update the patchset)

You can find it here GitHub - brooklynakos/phoronix-test-suite: phoronix test suite haikuports recipe and patchset and hkpg · GitHub

i hope that this early effort has some value since it may show which individual tests are easy to port outside of pts.

4 Likes

I would install the script to $prefix/bin as:

	# Pack script
	mkdir -p $prefix/bin && cp $portDir/additional-files/pts_launcher.sh $prefix/bin
	chmod +x $prefix/bin/pts_launcher.sh 
	
	# link script
	addAppDeskbarSymlink $prefix/bin/pts_launcher.sh "Phoronix Test Suite (interactive mode)"

This way you can still launch it from Deskbar or directly in Terminal? Would need cmd:pts_launcher.sh in PROVIDES then.

Also switch SOURCE_DIR and PATCHES in the recipe (with an empty space between PATCHES and ARCHITECTURES and on after ARCHITECTURES.

Other then that, packages OK so thanks there! Now I only need to find out how this actually works, running it and selecting 1 and Enter doesn’t seem to do much?

EDIT: ADDITIONAL_FILES comes right after PATCHES (no empty line in between the both)

@Begasus thank you for your suggestions.In my system selecting 1 works ok…pts tries to download tests, compiles them and runs them. Simple tests like decompression work ok, even some graphics one named qgears or a network speed test…in previous topic i had screenshots of some successful tests as you can see here Phoronix Test Suite - #6 by brooklynakos .i don’t understand why this does not work for you. The only hard requirement is php and i tried it in 64bit only…Did you see CPU activity ?

From memory, Haiku nightly has many additional runtime checks compared to official Beta’s, so there will be a noticable performance delta between them. Getting results on nightly and comparing against Linux release isnt a fair comparison. Also, any file system dependant checks are iffy since the BeFS simply does more with attribute book keeping (more work = slower benchmarks). Also the tests may be Posix optimised while Haiku may have alternative faster native solution, which doesn’t get tested. Finally, Haiku never got the millions of dev hours squeezing every tiny little bit of performance.

All in all, you can easily tell Haiku devs haven’t rushed to port the Phoronix test suite since nobody want to deal with the innevitable “linux is faster” conclusion that may come up. A drag race car is great on sections of straight roads, but we need storage space for the groceries and to seat 5 adults.

The test is only useful to test different Haiku versions, to test regressions. Compiling a full Haiku package kind of does the same thing.

Hello again…i followed @Begasus recommendations and an updated recipe is now available on my repository.I also bypassed root user detection.An updated patchset is available.Also a new hpkg file is available.

Since i am behind a slow internet connection,if you people can spare some time and try more tests it will be very useful to know how many tests work ok and what issues are there….

I identified another issue …some dependencies of certain tests are incorrectly identified as unmet….e.g

In reality all of these are currently installed in my system…so detection is incorrect here…

P.S detection is now fixed…External dependencies are now correctly detected by searching specific Haiku libs and headers directories…As always updated patchset and hpkg are available in my repo….. The only minor issue that remains here is that if a package is really missing then it s not installed automatically with pkgman as it should…. Will investigate further

P.S 2 Automatic dependency installation using pkgman works locally now for 1 test that i tried.(even though this specific test fails eventually during compilation)

The reason that i havent updated the patchset yet is that automatic installation is based on specific distro xml information (and a new shell file that should call pkgman install) which i am not sure i am the most experienced person to create reliably.(currently i use pkgman search to find info and work on other distros sample xml e.g i had to remove all Filecheck statements pointing to /usr/ directories).

The packages xml file contains info like this

The pkgman install script currently is very simple like this

Which is the best way to have a correct packages xml here?Finding packages manually using pkgman search and test with various phoronix tests?Is there a way to combine pkgman search and install in one script?I believe that if the package name is different in Haiku that in other distros that packages.xml should be corrected or pkgman install will report that the package is not found.

Relevant directories containing other distros files are here

and here

P.S3 Also a generic_packages.xml plays role here…

@Begasus please have a look on these directories and advise….

P.S 4 i ran 120 different tests (just the dependency detection not the full tests) and it works quite well (there are still some hicups remaining but propably they are related to the contents of specific hpkgs).Updated patchset and hpkg is on my repo.

P.S 5 I investigated why some graphics tests return “This test did not produce a result” by enabling debug_install for specific tests. During test installation there is an xml downloaded for each test. This xml contains a line which defines for which OS each downloaded file is made for. Usually it is Linux (unless the file to be downloaded is an exe where the line is Windows). For some reason Haiku does not qualify there as Linux so flles are not fully downloaded, which causes problems during test runs. It needs a workaround here because this 6 happens for many tests.

P.S 6 i understood the mechanism of dependency detection better. I believe i will get most missing dependencies resolved given some time. I also now have a patch that allows most of the test files to be downloaded but both need further testing so updates to my repo will be delayed.

1 Like

I have uploaded the latest recipe to my repo.

Current status is the following:

Regarding external dependencies most are automatically installed via pkgman.

33 of 104 External Dependencies Missing

  • Apache Maven
  • AutoDesk 3DS
  • Boost Thread Development
  • CSH
  • Distributed and Unified Numerics Environment
  • Eigen
  • Erlang
  • FreeImage
  • GLFW
  • GNU C Library
  • GNU Standard C++ Library v3
  • GTK2
  • Imlib2
  • Linear Algebra Pack
  • Linux AIO
  • MongoDB
  • NUMA
  • OpenGL Utility Kit (GLUT)
  • OpenMPI
  • PERL OpenGL
  • Perl Interface to the MD5 Algorithm
  • Python Boost
  • Python Scipy
  • Python Sklearn
  • Ruby
  • SMART Monitoring Tools
  • Steam
  • Subversion
  • SuiteSparse
  • V8 JavaScript Engine
  • VA-API Video Acceleration API
  • Xv and XvMC
  • httpd

Most dependencies are actually correctly reported as missing…I was not able to find a similar package using pkgman search.Correct me if i am wrong.

The main issue that remains is the following:

There are two kind of tests available: tests that download source and do the compilation in Haiku…these tend to work ok more or less e.g pts/qgears2-1.0.1

There are also tests that download linux executables and try to run these e.g pts/supertuxkart-1.8.1 returns The test run did not produce a result.If you dig deeper you can find that the actual error comes when running the linux executable.

screenshot5

i know that there is a HaikuDepot version of supertuxkart available so the elegant way should be “if test under discussion exists on Haikudepot don’t download anything .. Do pkgman install instead and symlink afterwards so test can run”.Not trivial stuff. Still needs test calcification beforehand…Is test going to be compiled or is it binary?

Still if you find current status useful let me know..there are issues still unresolved like filesystem and processor reported unknown which i could fix if requested.

I found a way to measure coverage. On my system 60% of downloaded tests (many tests have two or three different versions) contain make,cmake,meson,ninja,java,python in their install.sh…Combined with missing external dependencies mentioned before should allow approx. 1/2 of total tests to run. Considering other errors lowers this even more to 1/3 . This depends heavily also to the nature of tests, Processor, OS, Network Memory, System tend to work Graphics are more difficult. Some tests may fail related to specific java or python errors e.g i ve seen java tests failing with unknownhost exception or major version errors.

P.S i am currently filling Software and Hardware info e.g fill the following (more fields should appear under each category as i progress)

(Info here is heavily proccessed with grep and awk and cut and may be incorrect or fail on other users.

I know that one source of information is sysinfo (regarding cpu,memory)…Also df -h for disk and listdev for devices.

Edit: Found a useful link from @DigitalBox. This has more commands than i knew.

@DigitalBox there are a couple more interesting commands to include in your article like screenmode,screeninfo.

1 Like