On Mon, Jun 30, 2014 at 2:29 PM, Flavio Leitner <f...@redhat.com> wrote: > > Hi Gurucharan, > > I've tried to do the same with Fedora's spec but the time to run > "make check" when doing frequent builds is considerable. > > I had quite a few false-positives during parallel execution of > "make check" and that breaks the entire rpm construction. I have used the "make check TESTSUITEFLAGS='--recheck' " option. This re-runs the failed unit tests once more serially. Hopefully that should not cause any breakage. > > I believe most of developers are running "make check". At least > I know Ben does :-) So, having this during package building process > doesn't seem to buy us anything. It turned out that there were a few unit test failures on Xenserver for quite a while and nobody knew about it. So, the reason to do this is to prevent such a thing from happening.
> > Perhaps invert the default to not do that, but if someone wants to > do it, then pass rpmbuild -D "make_check true" I will wait to hear what Ben has to say on what should be the default option. I am fine eitherways. > > Anyway, if you still want to go ahead with this, I suggest to use > rpmbuild --with/without options instead. In the snipped below, the > default is to not do it. But you can force to run make check by running: > # rpmbuild -bb --with make_check <specfile> > or force to not run by running: > # rpmbuild -bb --without make_check <specfile> I did look at this, but got a feeling that they were mostly used for conditional configure options. But now that you say it, I will defer to your expertise and I will go ahead and use your suggestion. Thanks, Guru > > This would be the rpm spec part: > > %define _default_make_check 0 > %if %{?_with_make_check: 1}%{!?_with_make_check: 0} > %define with_make_check 1 > %else > %define with_make_check %{?_without_make_check: 0}%{!?_without_make_check: > %{_default_make_check}} > %endif > ... > > %build > ... > %if %{with_make_check} > if make check TESTSUITEFLAGS='%{_smp_mflags}' || > make check TESTSUITEFLAGS='--recheck'; then :; > else > cat tests/testsuite.log > exit 1 > fi > %endif > > > More info: > http://www.rpm.org/wiki/PackagerDocs/ConditionalBuilds > http://rpm5.org/docs/api/conditionalbuilds.html > > Thanks! > fbl > > On Mon, Jun 30, 2014 at 01:10:44PM -0700, Gurucharan Shetty wrote: >> For RHEL, Fedora and Xenserver, run unit tests while >> building rpms. This may catch some cross-platform bugs. >> >> The commit also allows the users to optionally skip unit tests. >> (On debian, the default is to run unit tests. For consistency, >> do the same for rpms.) >> >> VMware-BZ: 1267127 >> >> CC: Flavio Leitner <f...@redhat.com> >> CC: Ben Pfaff <b...@nicira.com> >> Signed-off-by: Gurucharan Shetty <gshe...@nicira.com> >> --- >> INSTALL.Fedora | 5 +++++ >> INSTALL.RHEL | 5 +++++ >> INSTALL.XenServer | 5 +++++ >> rhel/openvswitch-fedora.spec.in | 19 +++++++++++++++++++ >> rhel/openvswitch.spec.in | 19 +++++++++++++++++++ >> xenserver/openvswitch-xen.spec.in | 20 ++++++++++++++++++++ >> 6 files changed, 73 insertions(+) >> >> diff --git a/INSTALL.Fedora b/INSTALL.Fedora >> index d711e24..bc4c5d8 100644 >> --- a/INSTALL.Fedora >> +++ b/INSTALL.Fedora >> @@ -45,6 +45,11 @@ $HOME/rpmbuild/SOURCES. >> >> This produces one RPM: "openvswitch". >> >> + The above command automatically runs the Open vSwitch unit tests. >> + To disable the unit tests, run: >> + >> + rpmbuild -D "make_check false" -bb rhel/openvswitch-fedora.spec >> + >> 5. On Fedora 17, to build the Open vSwitch kernel module, run: >> >> rpmbuild -bb rhel/openvswitch-kmod-fedora.spec >> diff --git a/INSTALL.RHEL b/INSTALL.RHEL >> index de85199..685b535 100644 >> --- a/INSTALL.RHEL >> +++ b/INSTALL.RHEL >> @@ -94,6 +94,11 @@ $HOME/rpmbuild/SOURCES. >> >> This produces two RPMs: "openvswitch" and "openvswitch-debuginfo". >> >> + The above command automatically runs the Open vSwitch unit tests. >> + To disable the unit tests, run: >> + >> + rpmbuild -D "make_check false" -bb rhel/openvswitch.spec >> + >> If the build fails with "configure: error: source dir >> /lib/modules/2.6.32-279.el6.x86_64/build doesn't exist" or similar, >> then the kernel-devel package is missing or buggy. Go back to step >> diff --git a/INSTALL.XenServer b/INSTALL.XenServer >> index ba25e43..5177ef8 100644 >> --- a/INSTALL.XenServer >> +++ b/INSTALL.XenServer >> @@ -36,6 +36,11 @@ RPMs for Citrix XenServer is the DDK VM available from >> Citrix. >> "openvswitch", "openvswitch-modules-xen", and >> "openvswitch-debuginfo". >> >> + The above command automatically runs the Open vSwitch unit tests. >> + To disable the unit tests, run: >> + >> + rpmbuild -D "make_check false" -bb rhel/openvswitch-xen.spec >> + >> Build Parameters >> ---------------- >> >> diff --git a/rhel/openvswitch-fedora.spec.in >> b/rhel/openvswitch-fedora.spec.in >> index 44cd7b9..3fb8dd2 100644 >> --- a/rhel/openvswitch-fedora.spec.in >> +++ b/rhel/openvswitch-fedora.spec.in >> @@ -6,6 +6,10 @@ >> # are permitted in any medium without royalty provided the copyright >> # notice and this notice are preserved. This file is offered as-is, >> # without warranty of any kind. >> +# >> +# When building, if tests have to be skipped, define the variable >> 'make_check'. >> +# For example: >> +# rpmbuild -D "make_check false" -bb rhel/openvswitch.spec >> >> #%define kernel 2.6.40.4-5.fc15.x86_64 >> >> @@ -26,6 +30,11 @@ Requires(post): systemd-units >> Requires(preun): systemd-units >> Requires(postun): systemd-units >> >> +%if %{?make_check:0}%{!?make_check:1} >> +# %{make_check} is not defined >> +%define make_check true >> +%endif >> + >> %description >> Open vSwitch provides standard network bridging functions augmented with >> support for the OpenFlow protocol for remote per-flow control of >> @@ -74,6 +83,16 @@ install -d -m 755 $RPM_BUILD_ROOT/var/lib/openvswitch >> # Get rid of stuff we don't want to make RPM happy. >> (cd "$RPM_BUILD_ROOT" && rm -f usr/lib/lib*) >> >> +%check >> +%if "%{make_check}" != "false" >> + if make check TESTSUITEFLAGS='%{_smp_mflags}' || >> + make check TESTSUITEFLAGS='--recheck'; then :; >> + else >> + cat tests/testsuite.log >> + exit 1 >> + fi >> +%endif >> + >> %clean >> rm -rf $RPM_BUILD_ROOT >> >> diff --git a/rhel/openvswitch.spec.in b/rhel/openvswitch.spec.in >> index 18bc10c..da526ac 100644 >> --- a/rhel/openvswitch.spec.in >> +++ b/rhel/openvswitch.spec.in >> @@ -6,6 +6,10 @@ >> # are permitted in any medium without royalty provided the copyright >> # notice and this notice are preserved. This file is offered as-is, >> # without warranty of any kind. >> +# >> +# When building, if tests have to be skipped, define the variable >> 'make_check'. >> +# For example: >> +# rpmbuild -D "make_check false" -bb rhel/openvswitch.spec >> >> Name: openvswitch >> Summary: Open vSwitch daemon/database/utilities >> @@ -21,6 +25,11 @@ Buildroot: /tmp/openvswitch-rpm >> Requires: openvswitch-kmod, logrotate, python >> BuildRequires: openssl-devel >> >> +%if %{?make_check:0}%{!?make_check:1} >> +# %{make_check} is not defined >> +%define make_check true >> +%endif >> + >> %description >> Open vSwitch provides standard network bridging functions and >> support for the OpenFlow protocol for remote per-flow control of >> @@ -67,6 +76,16 @@ rm \ >> >> install -d -m 755 $RPM_BUILD_ROOT/var/lib/openvswitch >> >> +%check >> +%if "%{make_check}" != "false" >> + if make check TESTSUITEFLAGS='%{_smp_mflags}' || >> + make check TESTSUITEFLAGS='--recheck'; then :; >> + else >> + cat tests/testsuite.log >> + exit 1 >> + fi >> +%endif >> + >> %clean >> rm -rf $RPM_BUILD_ROOT >> >> diff --git a/xenserver/openvswitch-xen.spec.in >> b/xenserver/openvswitch-xen.spec.in >> index ae29649..06c8742 100644 >> --- a/xenserver/openvswitch-xen.spec.in >> +++ b/xenserver/openvswitch-xen.spec.in >> @@ -17,6 +17,11 @@ >> # -D "kernel_version 2.6.32.12-0.7.1.xs5.6.100.323.170596" >> # -D "kernel_flavor xen" >> # -bb /usr/src/redhat/SPECS/openvswitch-xen.spec >> +# >> +# To disable unit test run, define "make_check" as "false". >> +# for example: >> +# >> +# rpmbuild -D "make_check false" -bb xenserver/openvswitch-xen.spec >> >> %if %{?openvswitch_version:0}%{!?openvswitch_version:1} >> %define openvswitch_version @VERSION@ >> @@ -37,6 +42,11 @@ >> # build-supplemental-pack.sh requires this naming for kernel module packages >> %define module_package modules-%{kernel_flavor}-%{kernel_version} >> >> +%if %{?make_check:0}%{!?make_check:1} >> +# %{make_check} is not defined >> +%define make_check true >> +%endif >> + >> Name: openvswitch >> Summary: Open vSwitch daemon/database/utilities >> Group: System Environment/Daemons >> @@ -134,6 +144,16 @@ rm \ >> >> install -d -m 755 $RPM_BUILD_ROOT/var/lib/openvswitch >> >> +%check >> +%if "%{make_check}" != "false" >> + if make check TESTSUITEFLAGS='%{_smp_mflags}' || >> + make check TESTSUITEFLAGS='--recheck'; then :; >> + else >> + cat tests/testsuite.log >> + exit 1 >> + fi >> +%endif >> + >> %clean >> rm -rf $RPM_BUILD_ROOT >> >> -- >> 1.7.9.5 >> _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev