Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • tests/common
  • andrunko/common
2 results
Show changes
Commits on Source (3)
  • Detlev Casanova's avatar
    run-aa-test: Avoid reading previous tests log · 82a22234
    Detlev Casanova authored
    
    To read the log for the currently running test only, the current
    date and time is used with the `--since` argument of
    journalctl.
    
    Sometimes, tests can run too fast one after the other and the last log
    entries of the previous test is at the same timestamp as the one
    running.
    
    That makes the current test parse log entries from the
    previous test, which is unexpected, and the test fails.
    
    Unfortunately, the `--since` argument of journalctl doesn't allow for
    more precision than the second.
    
    To fix that, use the current journal cursor instead of time.
    With this approach, no entries from the previous test is read by the
    current test
    
    Signed-off-by: default avatarDetlev Casanova <detlev.casanova@collabora.com>
    82a22234
  • Walter Lozano's avatar
    Fix journalctl cursor use · 2e59623a
    Walter Lozano authored
    
    Using --after-cursor in combination with -t audit does produces the expected
    output since the filtering logic is applied before and after that the cursor
    is moved to next valid entry. In this case, using --after-cursor will cause
    the output to miss the first entry in the log.
    
    Fix the issue by using --cursor instead.
    
    Signed-off-by: default avatarWalter Lozano <walter.lozano@collabora.com>
    2e59623a
  • Walter Lozano's avatar
    Better fixing of cursor use · b1b1ded8
    Walter Lozano authored
    
    In commit 2e59623a a fix to the cursor use was introduced. However, the fix
    tries to overcome the issue in a wrong way.
    
    The problem is caused by the fact that the cursor is saved before running the
    test and then it is used to check newer entries of a specific type (audit).
    Since when journalctl is used with -t the cursor is first moved to the first
    entry of the specific type the --after-cursor was changed for --cursor to
    make the test pass.
    
    However, a better approach would be to save the cursor also taking into
    account the type of entry we are interested on, so later when we use it we
    can safetly check entries with --after-crusor.
    
    The only tricky case would be if there are no previous entries of the
    specific case, which will lead to an empty cursor. So also handle that case.
    
    Signed-off-by: default avatarWalter Lozano <walter.lozano@collabora.com>
    b1b1ded8
......@@ -73,8 +73,8 @@ fi
TMP_DIR=$(mktemp -d)
trap "rm -rf $TMP_DIR; exit" EXIT
# Log start time
START_TIME=$(date +"%F %T")
# Log start cursor
START_CURSOR="$(journalctl -t audit --output-fields=__CURSOR --output=json -n1 | sed 's/.*\"__CURSOR\":\"\([^\"]*\)\".*/\1/')"
if [ "${LAUNCH_DBUS}" = "True" ]; then
# Start a new D-Bus session for this test
......@@ -132,7 +132,13 @@ if [ "${UID}" != "0" ]
then
JOURNALCTL="sudo journalctl"
fi
${JOURNALCTL} -S "${START_TIME}" -t audit -o cat > ${AUDIT_FILE}
CURSOR_ARG=""
if [ "${START_CURSOR}" != "" ]; then
CURSOR_ARG="--after-cursor ${START_CURSOR}"
fi
${JOURNALCTL} ${CURSOR_ARG} -t audit -o cat > ${AUDIT_FILE}
echo "#=== ${TEST_TITLE} ==="
......