%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")}

Summary: Programs that test various rt-features
Name: rt-tests
# These will be setup by the "make rpm" logic
# Version:  __VERSION__
# BuildRequires: __BUILDREQUIRES_NUMA__
# Numa argument to make:  __MAKE_NUMA__
#
Version: __VERSION__
Release: 1%{?dist}
License: GPLv2
Group: Development/Tools
URL: git://git.kernel.org/pub/scm/linux/kernel/git/tglx/rt-tests.git
Source0: %{name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root
Obsoletes: cyclictest signaltest pi_tests
ExclusiveArch: x86_64
BuildRequires: __BUILDREQUIRES_NUMA__ python

%description
rt-tests is a set of programs that test and measure various components of
real-time kernel behavior. This package measures timer, signal, and hardware
latency. It also tests the functioning of priority-inheritance mutexes.

%prep
%setup -qn rt-tests

%build
make __MAKE_NUMA__

%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT/%{python_sitelib}
make DESTDIR=$RPM_BUILD_ROOT prefix=/usr install

%clean
rm -rf $RPM_BUILD_ROOT

%files
%defattr(-,root,root,-)
%{python_sitelib}/hwlatdetect.py*
/usr/bin/cyclictest
/usr/bin/pi_stress
/usr/bin/signaltest
/usr/bin/hwlatdetect
/usr/bin/rt-migrate-test
/usr/bin/pip_stress
/usr/bin/ptsematest
/usr/bin/sendme
/usr/bin/sigwaittest
/usr/bin/svsematest
/usr/bin/pmqtest
/usr/bin/hackbench
/usr/src/backfire/backfire.c
/usr/src/backfire/Makefile
%doc
/usr/share/man/man8/cyclictest.8.gz
/usr/share/man/man8/pi_stress.8.gz
/usr/share/man/man8/hwlatdetect.8.gz
/usr/share/man/man4/backfire.4.gz
/usr/share/man/man8/ptsematest.8.gz
/usr/share/man/man8/sendme.8.gz
/usr/share/man/man8/sigwaittest.8.gz
/usr/share/man/man8/svsematest.8.gz
/usr/share/man/man8/pmqtest.8.gz
/usr/share/man/man8/hackbench.8.gz

%changelog
* Tue Jan 27 2015 Clark Williams <williams@redhat.com> - 0.90-1
- pip_stress: parameterize usleep value to work-around platform issues
- From Daniel Wagner <daniel.wagner@bmw-carit.de>:
  - pi_stress: Store schedule attributes per thread
  - rt-utils: Add gettid()
  - rt-utils: Add helper to parse/print scheduling policies
  - rt-sched: Add sched_setattr/sched_getattr API
  - pi_stress: Use error.h for logging and debugging
  - error: Add debug() function
  - pi_stress: Remove unused TIMER_SIGNAL definition
  - rt-tests.h: Remove unused header file
  - hackbench: Don't re-assign context for each fd
- From Joakim Hernberg <jbh@alchemy.lu>:
  - cyclictest: make affinity option only use number of online cpus
- From John Kacur <jkacur@redhat.com>:
  - cyclictest: Add long option --laptop to preserve battery power
  - cyclictest: Fix help for long options only
  - cyclictest: Change the output from function sighand() to stderr
  - cyclictest: Always print an err message if write of 0 to cpu-dma_latency fails
  - rt_numa.h: Suppress discards 'const' qualifier warning
  - lib: Rework err_msg_n to output strerror after message
- From Alexey Brodkin <Alexey.Brodkin@synopsys.com>:
  - Makefile: allow building selected tests with non-NPTL toolchain

* Sun Mar 30 2014 Clark Williams <williams@redhat.com> - 0.89-1
- clean up debugging comments and printfs from last release
- ran hwlatdetect.py through 2to3, works for both python2 and 3

* Fri Mar 28 2014 Clark Williams <williams@redhat.com> - 0.88-1
- From Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
  - cyclictest: Fix tracemark output when the latency threshold is hit on ARM
- From Gary S. Robertson <gary.robertson@linaro.org>:
  - cyclictest: Restore CPU affinity function for non-NUMA builds
  - cyclictest: Don't offer --numa option when unavailable

* Wed Dec 11 2013 Clark Williams <williams@redhat.com> - 0.87-1
- From Aaron Fabbri <ajfabbri@gmail.com>:
  - cyclictest: CPU affinity now takes arbitrary set of cpus

* Fri Nov 15 2013 Clark Williams <williams@redhat.com> - 0.86-1
- cyclictest: allow break threshold without doing any tracing
- cyclictest: add named fifo for statistics
- from  John Kacur <jkacur@redhat.com>:
  - cyclictest: Align option fixes
  - Makefile: Don't tag files in dir BUILD from rpm builds
  - Makefile: Add BUILDROOT and SPECS to the dirs to remove for distclean
  - Makefile: Add tmp dir to distclean and "make release" call distclean
  - Makefile: Don't tag tmp files created when making a release
- from Nicholas Mc Guire <der.herr@hofr.at>:
  - cyclictest: add align thread wakeup times option
- cyclictest: modify option handling to use enumerated types
- from Sebastian Andrzej Siewior <bigeasy@linutronix.de>:
  - hackbench: init child's struct before using it
- from Jim Somerville <Jim.Somerville@windriver.com>:
  - cyclictest: finish removal of 1 second first loops
- from Frank Rowand <frank.rowand@am.sony.com>:
  - rt-tests: NUMA optional for make rpm
  - cyclictest: white space cleanup

* Tue Nov 13 2012 Clark Williams <williams@redhat.com> - 0.85-1
- [cyclictest] add tracemark function back to breaktrace logic
- from Frank Rowand <frank.rowand@am.sony.com>:
  - [cyclictest] report large measured clock latency
  - [cyclictest] cleanup getopt_long() parameters
- from John Kacur <jkacur@redhat.com>:
  - [Makefile] add CPPFLAGS to pattern rule for dependencies
  - [gitignore] exclude patches and .a archives
- from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>:
  - Makefile: separate CFLAGS and CPPFLAGS
  - have printf use %s format for strings
- from Bhavesh Davda <bhavesh@vmware.com>:
  - cyclictest: histogram overflow instance tracking
  - cyclictest: whitespace cleanup

* Wed May  9 2012 Clark Williams <williams@redhat.com> - 0.84-1
- [cyclictest] added -Q/--priospread option to
- from Markus Kohlhase <mail@markus-kohlhase.de>
  - [docs] added description from osadl.org
- from Darren Hart <dvhart@linux.intel.com>
  - Makefile: Support user supplied CFLAGS and LDFLAGS
- from Steven Rostedt <rostedt@goodmis.org>
  - rt-tests: Update rt-migrate-test to use ftrace infrastructure
- from John Kacur <jkacur@redhat.com>
  - .gitignore: differentiate between program names and directories
  - pi_stress: Check the status of sched_getaffinity
  - Makefile: Introduce a static library
  - Move info, warn, and fatal functions to error.[ch]
  - install: Fix failed to create symbolic link hwlatdetect file exists
  - cyclictest: Make cyclictest fail if it cannot run with requested priority
- from Frank Rowand <frank.rowand@am.sony.com>
  - cyclictest: segfault with '-a'
  - cyclictest: avoid unneeded warning
  - cyclictest: warn of interaction between '-a', '--smp', and '--numa'
  - Makefile: get machinetype from compiler instead of uname
  - cyclictest: incorrect first latency value for --verbose option
  - cyclictest: printf format compile warning

* Mon Sep 26 2011 Clark Williams <williams@redhat.com> - 0.83-1
- modified Makefile to be smarter about building with NUMA

* Wed Sep 21 2011 Clark Williams <williams@redhat.com> - 0.82-1
- fix print that causes error in histogram processing

* Tue Sep 20 2011 Clark Williams <williams@redhat.com> - 0.81-1
- cleaned up previous hack for /dev/cpu_dma_latency interface

* Tue Sep 20 2011 Clark Williams <williams@redhat.com> - 0.80-1
- use /dev/cpu_dma_latency interface to prevent cstate transitions
  in cyclictest

* Thu Sep 15 2011 Clark Williams <williams@redhat.com> - 0.79-1
- added signal_workers routine to hackbench
- added -F/--fifo option to hackbench

* Wed Sep 14 2011 Clark Williams <williams@redhat.com> - 0.78-1
- modified hackebench signal logic

* Fri Sep  9 2011 Clark Williams <williams@redhat.com> - 0.77-1
- removed tracemark functions (too much contention on multiprocessors)

* Wed Sep  7 2011 Clark Williams <williams@redhat.com> - 0.76-1
- only turn on /proc/sys/kernel/ftrace_enabled for a tracer that
  needs it
- make sure to set current_tracer to function for -f switch

* Fri Sep  2 2011 Clark Williams <williams@redhat.com> - 0.75-1
- added utility routines for mounting debugfs and event/tracing manipulation
- from Steven Rostedt <srostedt@redhat.com>:
  - allow events for all tracers
  - Have -I and -P together also be -B
  - do not touch tracing_thresh
  - only check file descriptor in tracemark() function
  - use interval on first loop instead of 1 second
  - allow tracemark() to take variable args

* Thu Aug 18 2011 Clark Williams <williams@redhat.com> - 0.74-1
- changes to deal with 3.0 kernel
- fixed buildrequires in specfile for Python
- fixed spelling error in printf in cyclictest
- from John Kacur <jkacur@redhat.com>
  - Make the function header style consistent with the rest of cyclictest.
  - Spelling clean-ups
- from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  - fix possible buffer overflow in string handling

* Mon May  9 2011 Clark Williams <williams@redhat.com> - 0.73-1
- fixed signal handling in hackbench (avoid thousands of zombies)
- from Geunsik Lim <geunsik.lim@samsung.com>
  - fix incorrect wakeup interface in cyclictest
- from Wolfram Sang <w.sang@pengutronix.de>
  - Simplify Makefile using -D option to install
- from Carsten Emde <C.Emde@osadl.org>
  - add histogram summary column option (-H) to cyclictest
- from Daniel Sangorrin <daniel.sangorrin@gmail.com>
  - fix sched_setaffinity type error when building with UCLIB
- from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  - install backfire's Makefile
  - modernize backfire's Makefile

* Fri Jun 25 2010 Clark Williams <williams@redhat.com> - 0.72-1
- changed 'diff' variable in timerthread() routine to be unsigned
  64-bit to avoid overflow issues in debugging
- included <stdint.h> and changed all 'long long' declarations to
  use uint64_t and int64_t

* Tue May 18 2010 Clark Williams <williams@redhat.com> - 0.71-1
- from Michal Schmit <mschmidt@redhat.com>:
  - fix accumulating overruns in periodic timer mode

* Fri Apr  9 2010 Clark Williams <williams@redhat.com> - 0.70-1
- from Olaf Hering <olaf@aepfle.de>
  - skip python dependency during install if python not available

* Fri Apr  9 2010 Clark Williams <williams@redhat.com> - 0.69-1
- fix bus error in cyclictest on NUMA systems with more than 16 cores
- reset default cyclictest policy to SCHED_OTHER
- from Carsten Emde <C.Emde@osadl.org>
  - add pmqest program for testing posix message queue performance
  - misc doc fixes

* Fri Mar 19 2010 Clark Williams <williams@redhat.com> - 0.68-1
- fix tracing difference between 2.6.24 and 2.6.33

* Tue Mar 16 2010 Clark Williams <williams@redhat.com> - 0.67-1
- modified specfile to add hackbench
- modified internal ftrace logic for correct tracing
- Changed rpm %description field to be more descriptive (BZ# 572323)
- from Carsten Emde <c.emde@osadl.org>
  - added smp option to svsematest
  - fixed policy display in cyclictest
- from John Kacur <jkacur@redhat.com>
  - changed default scheduling policy to SCHED_FIFO
  - fixed spelling mistake on cyclictest man page
  - use symbolic names for scheduling policy
  - reverted commit 582be2a52c43801a10d318de7491f1cc7243d5cf to
    deal with bug in priority distribution
- from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  - renamed pip to pip_stress
  - eliminated use of temp files in dependency generation
  - install backfire.c module source in /usr/src/backfire
- from David Sommerseth <davids@redhat.com>
  - added new-and-improved hackbench to rt-tests

* Mon Feb 15 2010 Clark Williams <williams@redhat.com> - 0.66-1
- fix incorrect usage of sched_setscheduler in check_privs()

* Mon Feb  8 2010 Clark Williams <williams@redhat.com> - 0.65-1
- add workaround to hwlatdetect for incorrect initializer in
  smi_detector.ko

* Fri Jan 29 2010 Clark Williams <williams@redhat.com> - 0.64-1
- from John Kacur <jkacur@redhat.com>
  - automatic dependency generation
  - style cleanups
  - libnuma code cleanups
  - add copyright to rt_numa.h

* Wed Jan 27 2010 Clark Williams <williams@redhat.com> - 0.63-1
- added support for libnuma V1 API

* Tue Jan 26 2010 Clark Williams <williams@redhat.com> - 0.62-1
- added NUMA option
- patch from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
  to clarify source copyrights
- moved hwlatdetect to python site-library

* Wed Jan 13 2010 Clark Williams <williams@redhat.com> - 0.61-1
- added --smp/-S option to setup for basic SMP testing
- added warn() and fatal() utility functions

* Tue Dec 29 2009 Clark Williams <williams@redhat.com> - 0.60-1
- John Kacur <jkacur@redhat.com>:
  - added pip test (process based priority inheritance)
  - refactored some error routines into the common library
  - added 'make tags' option to Makefile
- Michael Olbrich <m.olbrich@pengutronix.de> added an unbuffered
  output option to cyclictest (-u/--unbuffered)

* Mon Dec 21 2009 Clark Williams <williams@redhat.com> - 0.59-1
- deleted classic_pi
- David Sommerseth <davids@redhat.com>:
  - added help text for -M (refresh-on-max) option for cyclictest
  - fixed parsing of --mlockall in signaltest
- Carsten Emde <C.Emde@osadl.org> provided a better explaination
  for using the kernel module with the backfire program
- John Kacur <jkacur@redhat.com> cleaned up the trailing comments
  on the guard macros in src/lib/rt-utils.h

* Mon Dec 21 2009 Clark Williams <williams@redhat.com> - 0.58-1
- merged jkacur's portable getcpu() code
- fixed inadvertent conversion of some source to DOS text files

* Mon Dec 14 2009 Clark Williams <williams@redhat.com> - 0.57-1
- John Kacur <jkacur@redhat.com> folded in Carsten Emde's tests
    - ptsematest
    - sigwaittest
    - svsematest
    - sendme
- Carsten Emde <carsten.emde@osadl.org> created a utility library
  moving functions from cyclictest into src/lib/rt-utils.c
- Makefile cleanups from jkacur

* Thu Dec 10 2009 Clark Williams <williams@redhat.com> - 0.56-1
- cyclictest: added code to print break thread id with -b

* Thu Nov 19 2009 Clark Williams <williams@redhat.com> - 0.55-1
- pi_stress: cosmetic newline added
- fixes from John Kacur <jkacur@redhat.com>
  - pi_stress: Remove racy state variables that cause watchdog to trigger
  - pi_stress: Check whether quiet is set, before taking shutdown_mtx
  - pi_stress: Use a pthread_mutex_t for the global variable shutdown

* Tue Nov 17 2009 Clark Williams <williams@redhat.com> - 0.54-1
- patches from John Kacur <jkacur@redhat.com>
  - fix source style issues in pi_stress
  - add a DEBUG option to the Makefile
  - use CFLAGS for C compiler options
  - label targets as PHONY if not generating actual file
- patch to remove rt-tests.spec from .PHONY in Makefile

* Mon Nov 16 2009 Clark Williams <williams@redhat.com> - 0.53-2
- added back missing dist tag for release

* Tue Oct  6 2009 Clark Williams <williams@redhat.com> - 0.53-1
- fixed incorrect format string in hwlatdetect.py
- added docs/release-checklist.txt

* Mon Sep 21 2009 Clark Williams <williams@redhat.com> - 0.52-1
- fixes and cleanups to pi_stress from jkacur
- added rostedt's rt-migrate-test

* Thu Sep  3 2009 Clark Williams <williams@redhat.com> - 0.51-1
- two manpage fixes from Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
- added -M option from Arnaldo Carvahlo de Melo <acme@redhat.com>
  (for use on low-bandwidth connections, defer's update until new max hit)

* Fri Jul 24 2009 Clark Williams <williams@redhat.com> - 0.50-2
- minor patch to fix reporting option of hwlatdetect

* Thu Jul 16 2009 Clark Williams <williams@redhat.com> - 0.50-1
- patch to cyclictest from Sebastian Andrzej Siewior <bigeasy@linutronix.de>
  to process options before checking for root user
- patch to cyclictest from Sebastian Andrzej Siewior <bigeasy@linutronix.de>
  to exit with proper error code on exit
- added scripts/do-git-push script
- added push target to Makefile
- rewrite of hwlatdetect script to handle old smi_detector module

* Sun Jul  5 2009 Clark Williams <williams@redhat.com> - 0.47-1
- patch from GeunSik Lim <leemgs1@gmail.com> to reorder options for readability
- patch from GeunSik Lim <leemgs1@gmail.com> to add --policy option
- patch from GeunSik Lim <leemgs1@gmail.com> to clarify -h option usage
- modified --policy to take scheduler policy name instead of integers

* Thu Jul  2 2009 Clark Williams <williams@redhat.com> - 0.46-1
- added fix from Daniel Gollub <dgollub@suse.de> (doomsday latency)

* Thu Jul  2 2009 Clark Williams <williams@redhat.com> - 0.45-1
- bugfix from Daniel Gollub <dgollub@suse.de> (fix cyclictest segfault)
- cyclictest format change from Sven-Thorsten Dietrich <sdietrich@suse.de>
- added help target to Makefile

* Tue Jun 30 2009 Clark Williams <williams@redhat.com> - 0.44-1
- fix to specfile (renamed smidetect to hwlatdetect)
- added code to hwlatdetect allow setting window and width properly

* Thu Jun 25 2009 Clark Williams <williams@redhat.com> - 0.43-1
- manpage fixes from Uwe Kleine-Konig <u.kleine-koenig@pengutronix.de>

* Fri Jun 12 2009 Clark Williams <williams@redhat.com> - 0.42-1
- renamed smidetect -> hwlatdetect

* Thu May 28 2009 Clark Williams <williams@redhat.com> - 0.41-1
- added Stefan Agner's patch to fix calculating time difference
  when delta is bigger than 2147 seconds

* Wed May 13 2009 Clark Williams <williams@redhat.com> - 0.40-1
- added smidetect

* Thu Jan 03 2008 Clark Williams <williams@redhat.com> - 0.18-1
- Initial build.
