- Jan 12, 2022
-
-
Karel Koci authored
-
Karel Koci authored
-
Karel Koci authored
-
Karel Koci authored
-
Karel Koci authored
-
Karel Koci authored
-
- Jan 06, 2022
-
-
Karel Koci authored
-
Karel Koci authored
-
Karel Koci authored
-
Karel Koci authored
This still sets the root password but that is only to unlock the account. The key is used instead to authenticate and access the board.
-
Karel Koci authored
This should increase tests resilience as we can now spawn new shell instance for every test and thus taint of shell from one test can't influence others. This of course needs changes in existing tests and that is not part of this code. The update of existing code and removal of client_board fixture in favor of board_access should be done in the future. For now client_board is documented as obsolete and not suggested for the new code. The disadvantage of this change is that every fixture that wants to do a simple call (such as uci or cat) has to create its own connection and that can get spammy pretty fast. The solution for this is the new fixture fixture_board_access. This provides one shell instance. In reality it provides shell instance that can reconnect. This is due to issues when client container would change its IP address (for example when we change LAN addressing).
-
Karel Koci authored
These setups are handy in general. They created files and diretories that are automatically removed on revert.
-
Karel Koci authored
The RootPassword is used in conftest.py and might be usable in other places as well. Part of this are tests on OpenWrt container to make sure that setup works as expected and also setups for installing packages in both OpenWrt and Alpine.
-
Karel Koci authored
This should allow us to configure and call updater in reasonably common way. The setup currently covers features we already were using and also one generic Updater centric setup that is not required at the moment but is going to be for future testing of updater.
-
Karel Koci authored
This replaces static strings with generated ones from lorem-text library. To make tests reproducible we have to se seed for random. This is pretty common so this adds context function for it to toolbox. Toolbox was labeled as common tasks run on router. Now this changes it to just generic common toolbox and splits it to three submodules. There is module for Alpine Linux as well as for OpenWrt. Then there is one additional module for utilities needed in tests implementation.
-
Karel Koci authored
The abstractproperty is deprecaterd since Python 3.3.
-
Karel Koci authored
This tests commonly fails because syslog-ng takes its time to create the /var/log/messages file even when it is already running. Moving it does not ensure that it is run later on but at least that is what happens right now.
-
Karel Koci authored
The FDLogging uses poll to propagate data from one feed to the other. This is not limited to only two file descriptors but technically any number of them. Thus it is way more efficient to simply add new feeds to existing thread over spawning the new one.
-
Karel Koci authored
This improves cli handling in a wide variety of ways. Let's point one at a time. Change how we match sent command to not have issue with line break caused limited number of columns. Now it simply expects new line and return characters while it looks for characters from command. This makes it possible to remove hack to increase number of columns in Shell. The initial prompts in Shell were sanitized a little bit and commented. The "weird" prompt it turns out is caused by TERM variable and remote shell trying to control local terminal. One solution would be to set different TERM but that complicates mterm usage while debugging. The alternative and used option is to simply simplify regular expression to not have problem with it. With exception of Busybox's default prompt they are specific enough without having to match also new line. For the same reason as in previous paragraph the nsfarm prompt was also simplified. It now matches new lines only optionally. The reason is also that not every program terminates with new line at the end and so it is completely possible and valid that prompt is displayed at the end of line not at the beginning. The "nsfprompt" is also specific enough word that should not be anywhere else that we can rely only on it when we look for our prompt. This also fixes txt_write and bin_write as sendeof does work only on pexpect instance but not on fdexpect. The more correct and used option here is our own ctrl_d function that only signals EOF without actually closing stdin. The txt_read and bin_read methods gets option to not fail if file does not exist. The txt_write method also got option to append instead of overwrite. The logging was improved by implementing our own code that splits lines. The splitlines method is little bit too aggressive with splitting as it expects pretty reasonable new lines consistency usage with standards. The issue here is that for example '\r' that moves cursor to the left can be spawned multiple times and has no effect and in some cases that is what happens. The combination '\r\r\n' should be only one line not two as detected by splitlines. The code we now use detects combination of any number of '\r' and single '\n' as a one line split. It also handles only '\r' as that is commonly used to overwrite existing line so we consider it as new line as well. There is still a room for improvements such as support for backspace and other control characters.
-
- Jan 05, 2022
-
-
Karel Koci authored
This makes this script support Mox as well as it reduces unnecessary spam it creates in logs.
-
Karel Koci authored
-
- Jan 04, 2022
-
-
Karel Koci authored
-
- Dec 14, 2021
-
-
Karel Koci authored
-
Karel Koci authored
-
Karel Koci authored
-
Karel Koci authored
-
Karel Koci authored
This sorts all includes in nsfarm project.
-
Karel Koci authored
We want to make sure that we adhere to black formating and just also sorted imports are reasonable request.
-
- Dec 08, 2021
-
-
Black is now the coding standard for Python projects in Turris. The only exception over default is 120 columns limit.
-
- Nov 23, 2021
-
-
Jan Miksik authored
nsfarm/lxd/utils: fix PermissionError on container clean See merge request !37
-
Karel Koci authored
The user might not have ability to send signal to that process but we only check if process exists (is running) and not having ability means that process is running.
-
- Nov 18, 2021
-
-
Jan Miksik authored
Removed LXDConnection and refactored. Connection replaced wit pylxd.Client() and variables and logging moved into lxd.__init__
-
Instead of having hardcoded amd64 in image files we now try to detect architecture instead.
-
Jan Miksik authored
Use simplestream to obtain images now instead old method.
-
Karel Koci authored
The `lxc exec` expects `--` before the command. It seems to work even without it but it behaves weirdly in cases when application relies on its name (that is argv[0] and example of such application is Busybox).
-
Karel Koci authored
This allows you to specify name for container. This name is used only in logs and if not specified the image name is used. This should primarily be used when you spawn multiple containers from same image side by side. Then specifying name allows easy recognition of different containers in the logs.
-
Karel Koci authored
The '-' is invalid so this replaces it with 'x'. For consistency this also changes it in such a way that it is always appended so the hidden issue like this won't happen again. It also makes the naming scheme consistent.
-
- Nov 16, 2021
-
-
Karel Koci authored
This tests txt_write, txt_read, bin_write and bin_read Shell methods. There were also few issues with it that were discovered during the testing. For example calling prompt twice causes match of new prompt. The output of txt_read was incosistent with text prepresentation in Python. The new feature here is ability of txt_write to append instead of overwrite.
-
Karel Koci authored
This was causing issue when tests from multiple packages were run in one session as serial console is not correctly closed on cleanup of board fixture. These should be session anyway as they do not cause any conflict with anything else (compare to boot_serial that boots and reboots the router). There is no reason why we would want the new instances of these objects, rather the opposite.
-
- Nov 04, 2021
-
-
Jan Miksik authored
replaced nonexisting debug mark the test is now skipped due to some incompatibility that will be investigated.
-