Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix setup.py license #7

Closed
wants to merge 28 commits into from
Closed

Fix setup.py license #7

wants to merge 28 commits into from

Conversation

acerv
Copy link
Owner

@acerv acerv commented Jun 12, 2024

The setuptools script is using LGPLv2 while the project is developed in GPLv2.

Signed-off-by: Andrea Cervesato andrea.cervesato@suse.com

acerv and others added 28 commits September 18, 2023 11:09
This fixes failure when repeatedly run make install:

ln -s /opt/ltp/runltp-ng /opt/ltp/kirk
ln: failed to create symbolic link '/opt/ltp/kirk': File exists
make: *** [Makefile:16: install] Error 1

Fixes: 666a2bd ("Symlink kirk with runltp-ng in LTP installation")
Signed-off-by: Petr Vorel <pvorel@suse.cz>
Makefile: Force symlink creation
runltp-ng symlink is not pointing to kirk, but the opposite way.
Using full path creates problems with rpm packaging:

ERROR: Link /opt/ltp/runltp-ng ->
/home/abuild/rpmbuild/BUILDROOT/ltp-20230929.48a150bf-1573.1.x86_64/opt/ltp/kirk
points inside build root.

Closes: #6
Fixes: 666a2bd ("Symlink kirk with runltp-ng in LTP installation")
Fixes: 7e397fe ("Fix 666a2bd")
Suggested-by: Cyril Hrubis <chrubis@suse.cz>
Reviewed-by: Petr Cervinka <pcervinka@suse.com>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
Modify incorrect ssh sut sample code
This fixes a problem with missing output on LTP new C API and new shell
API, which both print tst_res() and tst_brk() messages to stderr
(unlike the old APIs which print to stdout).

    $ /root/kirk.git/kirk -r smoketest -v
    ...
    ===== access01 =====
    command: access01
    Tained kernel: unsigned module was loaded
    tst_test.c:1690: TINFO: LTP version: 20230929-89-g446d82e5b
    tst_test.c:1574: TINFO: Timeout per run is 0h 05m 24s
    access01.c:245: TPASS: access(accessfile_rwx, F_OK) as root passed
    access01.c:245: TPASS: access(accessfile_rwx, F_OK) as nobody passed
    ...
    ===== ping602 =====
    command: ping02.sh -6
    Tained kernel: unsigned module was loaded
    ping02 1 TINFO: Running: ping02.sh -6
    ping02 1 TINFO: IPv6 disabled on lhost via kernel command line or not
    compiled in
    ping02 1 TINFO: initialize 'lhost' 'ltp_ns_veth2' interface

Without this patch TINFO messages would be missing in the output and in
the logs (debug.log, results.json).

Merging stdout and stderr together can lead to problem of unexpected
output (message from stderr instead of expected number in
get_tainted_info()):

    $ mkdir /tmp/foo; cd /tmp/foo; rm -rf /tmp/foo; cd .
    cd: error retrieving current directory: getcwd: cannot access parent
    directories: No such file or directory
    $ /root/kirk.git/kirk -r smoketest -v
    ...
      File "/root/kirk.git/libkirk/scheduler.py", line 231, in _run_test
	tainted_code1, _ = await self._get_tainted_status()
      File "/root/kirk.git/libkirk/scheduler.py", line 150, in _get_tainted_status
	code, messages = await self._sut.get_tainted_info()
      File "/root/kirk.git/libkirk/sut.py", line 256, in get_tainted_info
	code = int(stdout.rstrip())
    ValueError: invalid literal for int() with base 10: 'shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory\n8192'

Therefore add check for it:
    $ /root/kirk.git/kirk -r smoketest -v
    Kernel Version: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
    Linux 6.3.1-0.g944cb55-default #1 SMP PREEMPT_DYNAMIC Thu May 11 07:12:30 UTC 2023 (944cb55)
    CPU: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
    x86_64
    Machine Architecture: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
    x86_64
    RAM: 2010696 kB
    Swap memory: 2098152 kB
    Distro: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
    opensuse-tumbleweed
    Distro Version: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
    20230502

    Error: shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
    8192

Fixes: #8
Signed-off-by: Petr Vorel <pvorel@suse.cz>
full_command will permit to have the entire command starting from
command itself plus the arguments.
The Framework::find_command API will permit to support external
commands, as well as test binaries which could be inside the framework
path.
With this patch it's possible tot execute tests which are inside the
framework path by using the --run-command option.
Still some old code is not using full_command, but building up the full
command using Test::command + Test::arguments. In this patch we use
Test::full_command around the code.
Using epoll() is a bad idea when asyncio is involved. The reason is that
asyncio itself is using epoll() to implement concurrency, so we end up
having 2 epoll() instances running in parallel. When we record a new file
descriptor into an asyncio application, we supposed to use the
asyncio.BaseEventLoop.add_reader() method which is, unfortunately, not
working (by experience) with plain files.

For this reason, the current solution is to use threaded read() syscall
which permits to execute reading operations, as well as keeping asyncio
loop running in the background without killing UI or data acquisition.
This patch filters out kselftests binaries using python regexp, instead
of using a bash script.
This patch fixes a documentation issue with the SSH module, where
reset command is saved as `reset_command` but it's `reset_cmd`.
This parameter has been introduced long time ago and never removed after
being replaced by --suite-timeout and --test-timeout parameters, which
are using asyncio features instead.
This patch resolves a problem that started to show up when fast commands,
such as 'cat', were executed on target. The original code was killing
the command once we faced a return_value == None. This is obviously wrong
and it probably comes from multiple SSH module implementations.

The right thing to do is to wait for the process completion, once we
finish to read stdout. In this way, return_value will be != None and we
can process fast commands execution.
This patch aims to save commands stdout/stderr once they are executed
inside the SSH channel. The whole implementation has been changed, in
order to customize the current SSH session object and to store both
stdout and stderr messages inside it, as well as checking for Kernel
Panic triggered by the command. In this way, the whole SSH
implementation should be also more stable.

Also, SSH tests have been improved by adding more tests, in order to
check stderr acquisition and long stdout text messages.
The previous code was not taking in consideration the return code 0, so
when test text was not acquired correctly, the text process ended up to
recognize test failure.
The IOBuffer object that is meant to show realtime messages coming from
the SSH commands was not passed to the event loop. Instead, it was
called as a normal callback. asyncio.ensure_future() is now used to
ensure that task will run.
Sometimes happens that test is stopped during execution, causing an
internal exception that turns out using a stdout variable initialized
with None. Then this will crash kirk due to unhandled TypeError.
Link: https://lore.kernel.org/ltp/20240607115304.86028-1-pvorel@suse.cz/
Reviewed-by: Andrea Cervesato <andrea.cervesato@suse.com>
Signed-off-by: Petr Vorel <pvorel@suse.cz>
The setuptools script is using LGPLv2 while the project is developed in
GPLv2.

Signed-off-by: Andrea Cervesato <andrea.cervesato@suse.com>
@acerv acerv closed this Jun 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants