Stefen

thank you very much

On 11/26/23 21:08, Steffen Möller wrote:
> Hi Thomas,
>
>> Gesendet: Samstag, 25. November 2023 um 14:22 Uhr
>> Von: "Thomas J Powderly" <tjt...@gmail.com>
>> An: emc-developers@lists.sourceforge.net
>> Betreff: [Emc-developers] pull requestproduced ' Build CI: Some jobs were not successful'
>>
>> Hello new to Git
>
> It is all a bit much. But thank you for nibbling through that jungle. I am not so sure if LinuxCNC should describe GitHub in too much detail, but if you see that the one or other reference to some of the many tutorials of GitHub would have helped then please send another PR to improve the documentation :)
>
>> I made a fork
>
> good!
>
>> made some changes did a 'push to master'
>
You mean to the master branch of your fork. That is technically fine, preferably though you would have committed to a new branch of yours (basically giving your changes a name) and then pushed that new branch to your forked repository. This way you can have several developments at the same time.
>
I was following
https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/How-to-push-an-existing-project-to-GitHub

and i did ( wow i can go waaay back in the terminal history!)
git push --set-upstream origin barWidgets

long story shorter
i pushed to 'origin' which is my repo on github linuxcnc-barwidgets

i say so because   ~/.git/config    says
    [remote "origin"]
        url = https://github.com/tjtr33/linuxcnc-barwidgets.git

>> did a pull request ( I think that's the procedure)
>
> good!
>
>> then got email that I
>> don't understand 1st error in message is in 'Built Rip & test' message
>> is Bar widgets #9519
>
> That is the automated builds and testing that kicks in with every PR, so issues are caught as early as possible.
>
>> pull request waspull request #2756 <https://github.com/LinuxCNC/linuxcnc/pull/2756>
>>
>> line 23ERROR: ld.so: object 'libeatmydata.so' from LD_PRELOAD cannot be
>> preloaded (cannot open shared object file): ignored.
>>
>> really? lib eat my data? not eat my shorts?
>
> That is a library accelerating I/O by not waiting for the hard drive. The LD_PRELOAD is a trick to override what the C library would normally do.
thanks, i found the library libeatmyfata and code on github
>
>> Is the error is caused by my code?
>
> This is not the error that caused the trouble. It is a test that failed, look at
>
> https://github.com/LinuxCNC/linuxcnc/actions/runs/6939722284/job/18877492636?pr=2756
> Look at line 9385
>
> Running test: /home/runner/work/linuxcnc/linuxcnc/tests/twopass
> Running test: /home/runner/work/linuxcnc/linuxcnc/tests/uspace/spawnv-root
> Runtest: 260 tests run, 259 successful, 1 failed + 0 expected, 4 skipped
> Failed:
>     /home/runner/work/linuxcnc/linuxcnc/tests/pyvcp-bar
> Error: Process completed with exit code 1.
>
> and then scrolling up to line 9310:
>
> Running test: /home/runner/work/linuxcnc/linuxcnc/tests/pyvcp-bar
> *** /home/runner/work/linuxcnc/linuxcnc/tests/pyvcp-bar: XFAIL: test run exited with 1
> ************** result:
> ************** stderr:
>         Traceback (most recent call last):
>           File "/home/runner/work/linuxcnc/linuxcnc/bin/pyvcp", line 101, in <module>
>             main()
>           File "/home/runner/work/linuxcnc/linuxcnc/bin/pyvcp", line 83, in main
> Skipping disabled test: /home/runner/work/linuxcnc/linuxcnc/tests/raster
>             pyvcp0 = Tk()
>           File "/usr/lib/python3.8/tkinter/__init__.py", line 2270, in __init__ >             self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use) >         _tkinter.TclError: no display name and no $DISPLAY environment variable
>         test.hal:4: waitpid failed pyvcp fred
>         test.hal:4: pyvcp exited without becoming ready
>         Note: Using POSIX non-realtime
> **************
> Running test: /home/runner/work/linuxcnc/linuxcnc/tests/realtime-math
>
>
> What this means is that the test routine wants to open a window but cannot do so since it has no window system, so it complains about the DISPLAY variable not being set, which typically helps with a redirection of the display across machines, like when you are logged in remotely. There are tricks to circumvent this with Xnest but I do not feel competent to suggest how this should be introduced - I admittedly thought this would have been integrated already.


ah!! i was told that the DISPLAY env var was turned off
in the script 'rumtests'.

I now need to remove the tests/pyvcp-bar
locally(DONE) and remotely(on GitHub  TBD)

In will study how to clean up the  'tests' dir in github's 'origin\

I have a small solution for running the graphic tests
but it requires human intervention and evaluation.
I created pyvcptests/ and fill it with barNN.hal and matching barNN.xml.
A script reads that dir, makes a list of the .hal files. Sorts the list
and marches thru the list with "halrun -f barNN.hal"|.
The user/tester must close each window to advance to next.
So, not auotmated but simple.
The wifget is shown on top of the terminal with the xml code visible.

It's meant to 'test' and to teach what the many xnml tags do.

>
>> Is the notification to all developers? or just to me & due to my coed?
>
> The PR is visible to the world and so is the error report.
> The error though was introduced only by your work. If you think that the test routines are to blame then please inspect them on .github/workflows/ci.yml .
>
>> I have made more changes since then and want to push again
>>
>> but caution says ask 1st
>

> I suggest you push what you want to push and risk running into that error again.


I hope removing the tests dir will not run into same error


>
> And then at some point we need to learn how to introduce the testing of GUIs that open windows in the CI.
>
> Hoping to have helped
> Steffen


You helped a lot.


Thank you

tomp
--------------------------------------soem notes of interest maybe------------------------------------

here's the    testbars.py     if ii is of interest

/////////////////
import os
import subprocess
import re

def sorted_nicely( l ):
    """ Sort the given iterable in the way that humans expect."""
    convert = lambda text: int(text) if text.isdigit() else text
    alphanum_key = lambda key: [ convert(c) for c in re.split('([0-9]+)', key) ]
    return sorted(l, key = alphanum_key)

files = []

for file_path in os.listdir('.'): # whereami
    if os.path.isfile(os.path.join('.', file_path)):
        if(file_path.split('.')[1]=='hal'):
            files.append(file_path)#only files, no dirs appemed to 'files' list

# sort the list

# from https://stackoverflow.com/questions/2669059/how-to-sort-alpha-numeric-set-in-python

# halrun each file with .hal extent
for file in sorted_nicely(files):

    # display the xml in the terminal, its usually 1 screen
    xf=file.split('.')[0]+'.xml'
    subprocess.run(['cat', xf])

    # show the widget
    str = '-f '+file # concatenate switches anf filename
    subprocess.run(['halrun', str])

/////////////////

each of the hal files ends with this stanza (makes easy to run next test)

///////////
...
start                        activate the hal animation ( sioggen pr random )
waitusr bar01                wait for user to clcik X in widget window
stop                        cleanup
unloadrt all                ""
unloadusr bar01             ""
exit                        exit to script loop or all done, back to terminal prompt
/////////
again thanks


_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to