<feed xmlns='http://www.w3.org/2005/Atom'>
<title>freeipa.git/ipatests/azure, branch fix_ber_scanf</title>
<subtitle>FreeIPA patches</subtitle>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/freeipa.git/'/>
<entry>
<title>azure-pipelines.yml: switch to Python 3.7</title>
<updated>2019-08-02T18:15:04+00:00</updated>
<author>
<name>François Cami</name>
<email>fcami@redhat.com</email>
</author>
<published>2019-08-02T15:07:15+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/freeipa.git/commit/?id=70b96d76cb97b386da27e05d81240f946b206378'/>
<id>70b96d76cb97b386da27e05d81240f946b206378</id>
<content type='text'>
* switch to Python 3.7 (UsePythonVersion@0 task)
* use "pip install --user"

Fixes: https://pagure.io/freeipa/issue/8030
Signed-off-by: François Cami &lt;fcami@redhat.com&gt;
Reviewed-By: Alexander Bokovoy &lt;abokovoy@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* switch to Python 3.7 (UsePythonVersion@0 task)
* use "pip install --user"

Fixes: https://pagure.io/freeipa/issue/8030
Signed-off-by: François Cami &lt;fcami@redhat.com&gt;
Reviewed-By: Alexander Bokovoy &lt;abokovoy@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Azure pipeline: report failure in prepare-build step</title>
<updated>2019-07-26T08:47:30+00:00</updated>
<author>
<name>Florence Blanc-Renaud</name>
<email>flo@redhat.com</email>
</author>
<published>2019-07-24T08:21:42+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/freeipa.git/commit/?id=5e97e80069349d4b6a8c221f724b8f459fc3aa89'/>
<id>5e97e80069349d4b6a8c221f724b8f459fc3aa89</id>
<content type='text'>
The azure pipeline defines a "prepare build" step that
installs the FreeIPA development dependencies but the
step does not report failures of the dnf builddep command.

As a consequence, subsequent steps may fail (for instance
because of components not installed such as tox) but are
hard to diagnose.

The fix reports the command failure.

Fixes: https://pagure.io/freeipa/issue/8022
Reviewed-By: Alexander Bokovoy &lt;abokovoy@redhat.com&gt;
Reviewed-By: Rob Crittenden &lt;rcritten@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The azure pipeline defines a "prepare build" step that
installs the FreeIPA development dependencies but the
step does not report failures of the dnf builddep command.

As a consequence, subsequent steps may fail (for instance
because of components not installed such as tox) but are
hard to diagnose.

The fix reports the command failure.

Fixes: https://pagure.io/freeipa/issue/8022
Reviewed-By: Alexander Bokovoy &lt;abokovoy@redhat.com&gt;
Reviewed-By: Rob Crittenden &lt;rcritten@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Use stage and phase attempt counters when saving test artifacts</title>
<updated>2019-07-17T10:10:34+00:00</updated>
<author>
<name>Alexander Bokovoy</name>
<email>abokovoy@redhat.com</email>
</author>
<published>2019-07-16T14:36:38+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/freeipa.git/commit/?id=0187a746c9197d5447e08ce2be49e3e021aae49b'/>
<id>0187a746c9197d5447e08ce2be49e3e021aae49b</id>
<content type='text'>
Azure Pipelines provide counters for running test jobs, these split into
System.StageAttempt and System.PhaseAttempt. Use them to make test
artifacts unique.

For XML test results we don't need to name them differently as they
aren't uploaded as artifacts but rather presented in a separate test
pane.

Reviewed-By: Florence Blanc-Renaud &lt;flo@redhat.com&gt;
Reviewed-By: Stanislav Levin &lt;slev@altlinux.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Azure Pipelines provide counters for running test jobs, these split into
System.StageAttempt and System.PhaseAttempt. Use them to make test
artifacts unique.

For XML test results we don't need to name them differently as they
aren't uploaded as artifacts but rather presented in a separate test
pane.

Reviewed-By: Florence Blanc-Renaud &lt;flo@redhat.com&gt;
Reviewed-By: Stanislav Levin &lt;slev@altlinux.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Use any nodejs version instead of forcing a version before nodejs 11</title>
<updated>2019-07-17T10:10:34+00:00</updated>
<author>
<name>Alexander Bokovoy</name>
<email>abokovoy@redhat.com</email>
</author>
<published>2019-07-16T14:49:36+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/freeipa.git/commit/?id=d55c9b6d7f0eefa5648fec5c0fb05ca475acd4fd'/>
<id>d55c9b6d7f0eefa5648fec5c0fb05ca475acd4fd</id>
<content type='text'>
Fedora nodejs builds were fixed, we don't need to limit ourselves
anymore.

Also, make sure python3-pyyaml is installed because pylint in Fedora 31
detects its use in contribs/

Reviewed-By: Florence Blanc-Renaud &lt;flo@redhat.com&gt;
Reviewed-By: Stanislav Levin &lt;slev@altlinux.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fedora nodejs builds were fixed, we don't need to limit ourselves
anymore.

Also, make sure python3-pyyaml is installed because pylint in Fedora 31
detects its use in contribs/

Reviewed-By: Florence Blanc-Renaud &lt;flo@redhat.com&gt;
Reviewed-By: Stanislav Levin &lt;slev@altlinux.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Make use of Azure Pipeline slicing</title>
<updated>2019-07-16T10:23:21+00:00</updated>
<author>
<name>Stanislav Levin</name>
<email>slev@altlinux.org</email>
</author>
<published>2019-07-03T09:56:32+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/freeipa.git/commit/?id=a2d4e2a61f46cf6337786b2cb031e3a9f394a708'/>
<id>a2d4e2a61f46cf6337786b2cb031e3a9f394a708</id>
<content type='text'>
The unit tests execution time within Azure Pipelines(AP) is not
balanced. One test job(Base) takes ~13min, while another(XMLRPC)
~28min. Fortunately, AP supports slicing:

&gt; An agent job can be used to run a suite of tests in parallel. For
example, you can run a large suite of 1000 tests on a single agent.
Or, you can use two agents and run 500 tests on each one in parallel.
To leverage slicing, the tasks in the job should be smart enough to
understand the slice they belong to.

&gt;The step that runs the tests in a job needs to know which test slice
should be run. The variables System.JobPositionInPhase and
System.TotalJobsInPhase can be used for this purpose.

Thus, to support this pytest should know how to split the test suite
into groups(slices). For this, a new internal pytest plugin was added.

About plugin.
- Tests within a slice are grouped by test modules because not all of
the tests within the module are independent from each other.
- Slices are balanced by the number of tests within test module.
- To run some module within its own environment there is a dedicated
slice option (could help with extremely slow tests)

Examples.
- To split `test_cmdline` tests into 2 slices and run the first one:

ipa-run-tests --slices=2 --slice-num=1 test_cmdline

- To split tests into 2 slices, then to move one module out to its own slice
and run the second one:

ipa-run-tests --slices=2 --slice-dedicated=test_cmdline/test_cli.py \
    --slice-num=2 test_cmdline

Fixes: https://pagure.io/freeipa/issue/8008
Signed-off-by: Stanislav Levin &lt;slev@altlinux.org&gt;
Reviewed-By: Alexander Bokovoy &lt;abokovoy@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The unit tests execution time within Azure Pipelines(AP) is not
balanced. One test job(Base) takes ~13min, while another(XMLRPC)
~28min. Fortunately, AP supports slicing:

&gt; An agent job can be used to run a suite of tests in parallel. For
example, you can run a large suite of 1000 tests on a single agent.
Or, you can use two agents and run 500 tests on each one in parallel.
To leverage slicing, the tasks in the job should be smart enough to
understand the slice they belong to.

&gt;The step that runs the tests in a job needs to know which test slice
should be run. The variables System.JobPositionInPhase and
System.TotalJobsInPhase can be used for this purpose.

Thus, to support this pytest should know how to split the test suite
into groups(slices). For this, a new internal pytest plugin was added.

About plugin.
- Tests within a slice are grouped by test modules because not all of
the tests within the module are independent from each other.
- Slices are balanced by the number of tests within test module.
- To run some module within its own environment there is a dedicated
slice option (could help with extremely slow tests)

Examples.
- To split `test_cmdline` tests into 2 slices and run the first one:

ipa-run-tests --slices=2 --slice-num=1 test_cmdline

- To split tests into 2 slices, then to move one module out to its own slice
and run the second one:

ipa-run-tests --slices=2 --slice-dedicated=test_cmdline/test_cli.py \
    --slice-num=2 test_cmdline

Fixes: https://pagure.io/freeipa/issue/8008
Signed-off-by: Stanislav Levin &lt;slev@altlinux.org&gt;
Reviewed-By: Alexander Bokovoy &lt;abokovoy@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Simplify ipa-run-tests script</title>
<updated>2019-07-16T10:23:21+00:00</updated>
<author>
<name>Stanislav Levin</name>
<email>slev@altlinux.org</email>
</author>
<published>2019-07-08T08:35:23+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/freeipa.git/commit/?id=2312b38a678d30b73c08dae19db7f8b74361a957'/>
<id>2312b38a678d30b73c08dae19db7f8b74361a957</id>
<content type='text'>
This is a sort of rollback to the pre #93c158b05 state with
several improvements.

For now, the nodeids calculation by ipa-run-tests is not stable,
since it depends on current working directory. Nodeids (tests
addresses) are utilized by the other plugins, for example.

Unfortunately, the `pytest_load_initial_conftests` hook doesn't
correctly work with pytest internal paths, since it is called
after the calculation of rootdir was performed, for example.

Eventually, it's simpler to follow the default convention for
Python test discovery.

There is at least one drawback of new "old" implementation.
The ignore rules don't support globs, because pytest 4.3.0+
has the same facility via `--ignore-glob`:

&gt; Add the `--ignore-glob` parameter to exclude test-modules with
&gt; Unix shell-style wildcards. Add the collect_ignore_glob for
&gt; conftest.py to exclude test-modules with Unix shell-style
&gt; wildcards.

Upon switching to pytest4 it will be possible to utilize this.
Anyway, tests for checking current basic facilities of
ipa-run-tests were added.

Fixes: https://pagure.io/freeipa/issue/8007
Signed-off-by: Stanislav Levin &lt;slev@altlinux.org&gt;
Reviewed-By: Alexander Bokovoy &lt;abokovoy@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a sort of rollback to the pre #93c158b05 state with
several improvements.

For now, the nodeids calculation by ipa-run-tests is not stable,
since it depends on current working directory. Nodeids (tests
addresses) are utilized by the other plugins, for example.

Unfortunately, the `pytest_load_initial_conftests` hook doesn't
correctly work with pytest internal paths, since it is called
after the calculation of rootdir was performed, for example.

Eventually, it's simpler to follow the default convention for
Python test discovery.

There is at least one drawback of new "old" implementation.
The ignore rules don't support globs, because pytest 4.3.0+
has the same facility via `--ignore-glob`:

&gt; Add the `--ignore-glob` parameter to exclude test-modules with
&gt; Unix shell-style wildcards. Add the collect_ignore_glob for
&gt; conftest.py to exclude test-modules with Unix shell-style
&gt; wildcards.

Upon switching to pytest4 it will be possible to utilize this.
Anyway, tests for checking current basic facilities of
ipa-run-tests were added.

Fixes: https://pagure.io/freeipa/issue/8007
Signed-off-by: Stanislav Levin &lt;slev@altlinux.org&gt;
Reviewed-By: Alexander Bokovoy &lt;abokovoy@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ipatests/azure: display actual dnf repo URLs</title>
<updated>2019-07-08T15:30:24+00:00</updated>
<author>
<name>François Cami</name>
<email>fcami@redhat.com</email>
</author>
<published>2019-07-03T21:29:24+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/freeipa.git/commit/?id=be7f54d40c33d147fdaf0d3cd65b56452a4f001a'/>
<id>be7f54d40c33d147fdaf0d3cd65b56452a4f001a</id>
<content type='text'>
Display which dnf repositories were available at the
prepare-build step via metalink.
Also display the fastestmirror cache.

Signed-off-by: François Cami &lt;fcami@redhat.com&gt;
Reviewed-By: Florence Blanc-Renaud &lt;flo@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Display which dnf repositories were available at the
prepare-build step via metalink.
Also display the fastestmirror cache.

Signed-off-by: François Cami &lt;fcami@redhat.com&gt;
Reviewed-By: Florence Blanc-Renaud &lt;flo@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Make dnf more robust and faster</title>
<updated>2019-07-03T06:13:39+00:00</updated>
<author>
<name>François Cami</name>
<email>fcami@redhat.com</email>
</author>
<published>2019-06-30T21:39:38+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/freeipa.git/commit/?id=7027f7914e32bcf0942931f8915fe602e27dd7aa'/>
<id>7027f7914e32bcf0942931f8915fe602e27dd7aa</id>
<content type='text'>
Sometimes the prepare-build step of azure pipelines fails
with download errors:
"configure: error: Package requirements (nspr) were not met:"
This can be due to fastestmirror not being used to check
mirror availability and sometimes speed. Combined with a
too-low default number of retries, and a high timeout this
can lead to download failures that could be avoided.
Activate fastestmirror, add more download workers, and tune
timeout/retries to make dnf more reliable.

Fixes: https://pagure.io/freeipa/issue/7999
Signed-off-by: François Cami &lt;fcami@redhat.com&gt;
Reviewed-By: Christian Heimes &lt;cheimes@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Sometimes the prepare-build step of azure pipelines fails
with download errors:
"configure: error: Package requirements (nspr) were not met:"
This can be due to fastestmirror not being used to check
mirror availability and sometimes speed. Combined with a
too-low default number of retries, and a high timeout this
can lead to download failures that could be avoided.
Activate fastestmirror, add more download workers, and tune
timeout/retries to make dnf more reliable.

Fixes: https://pagure.io/freeipa/issue/7999
Signed-off-by: François Cami &lt;fcami@redhat.com&gt;
Reviewed-By: Christian Heimes &lt;cheimes@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Exit on fail in azure multiline script</title>
<updated>2019-06-26T17:47:58+00:00</updated>
<author>
<name>Stanislav Levin</name>
<email>slev@altlinux.org</email>
</author>
<published>2019-06-15T07:27:46+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/freeipa.git/commit/?id=b5bb436e9fece23f76b35055eddf638f7b8251fe'/>
<id>b5bb436e9fece23f76b35055eddf638f7b8251fe</id>
<content type='text'>
By default, the `last` exit code returned from Azure script will be
checked and, if non-zero, treated as a step failure.  Luckily,
for Linux script is a shortcut for Bash. Hence errexit/e option
could be applied. But Azure pipelines doesn't set it by default:
https://github.com/microsoft/azure-pipelines-agent/issues/1803

For multiline script this is a problem, unless otherwise designed.
Some of benefits of checking the result of each subcommand:
- preventing subsequent issues (broken packages, container images, etc.)
- time saving (next steps will not run)
- good diagnostics (tells which part of script fails)

Signed-off-by: Stanislav Levin &lt;slev@altlinux.org&gt;
Reviewed-By: Alexander Bokovoy &lt;abokovoy@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
By default, the `last` exit code returned from Azure script will be
checked and, if non-zero, treated as a step failure.  Luckily,
for Linux script is a shortcut for Bash. Hence errexit/e option
could be applied. But Azure pipelines doesn't set it by default:
https://github.com/microsoft/azure-pipelines-agent/issues/1803

For multiline script this is a problem, unless otherwise designed.
Some of benefits of checking the result of each subcommand:
- preventing subsequent issues (broken packages, container images, etc.)
- time saving (next steps will not run)
- good diagnostics (tells which part of script fails)

Signed-off-by: Stanislav Levin &lt;slev@altlinux.org&gt;
Reviewed-By: Alexander Bokovoy &lt;abokovoy@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>azure tests: make sure /etc/docker folder exists</title>
<updated>2019-06-05T07:47:40+00:00</updated>
<author>
<name>Alexander Bokovoy</name>
<email>abokovoy@redhat.com</email>
</author>
<published>2019-06-05T04:36:58+00:00</published>
<link rel='alternate' type='text/html' href='https://fedorapeople.org/cgit/simo/public_git/freeipa.git/commit/?id=8f4ca3957c84e3f9339bcfb7c511f80553c58e00'/>
<id>8f4ca3957c84e3f9339bcfb7c511f80553c58e00</id>
<content type='text'>
Azure tests fail because we couldn't configure docker for IPv6 anymore.
This happened because we weren't able to copy our configuration file to
/etc/docker -- looks like the docker directory does not exist.

Reviewed-By: Christian Heimes &lt;cheimes@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Azure tests fail because we couldn't configure docker for IPv6 anymore.
This happened because we weren't able to copy our configuration file to
/etc/docker -- looks like the docker directory does not exist.

Reviewed-By: Christian Heimes &lt;cheimes@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
