Compare commits

..

2 Commits

Author SHA1 Message Date
Dima Kogan
cae085ae49 cleared up the CPAN indexing situation
1. generating bogus feedgnuplot.pm module. It's just a 'package' statement and
   the source. The source is there to get the POD

2. comments
2013-11-22 13:19:23 -08:00
Matthias Ries
d9e2c3c93a add a simple test for the App::feedgnuplot package 2013-11-22 12:58:52 -08:00
20 changed files with 779 additions and 1574 deletions

143
Changes
View File

@@ -1,146 +1,3 @@
feedgnuplot (1.45)
* zsh completion: --hardcopy, --image suggest filenames
* --image now produces a nicer legend: just the filename
* --curvestyle now overrides --curvestyleall
- This is a bug fix
* The version is now treated as a string not as a number
- So "1.40" is distinct from "1.4"
-- Dima Kogan <dima@secretsauce.net> Sun, 29 Oct 2017 13:56:28 -0700
feedgnuplot (1.44)
* --image draws its output beneath everything else
-- Dima Kogan <dima@secretsauce.net> Tue, 20 Jun 2017 16:44:30 -0700
feedgnuplot (1.43)
* Added --image
-- Dima Kogan <dima@secretsauce.net> Mon, 19 Jun 2017 13:12:38 -0700
feedgnuplot (1.42)
* Data can now come from STDIN or files on the cmdline.
This fixes a regression. Self-plotting data files work again
-- Dima Kogan <dima@secretsauce.net> Fri, 31 Mar 2017 15:38:47 -0700
feedgnuplot (1.41)
* Histograms: --xlen can coexist with --xmin/--xmax
* Histograms: work as expected with --xlen and --monotonic
* Histograms: better sanity checking of options
-- Dima Kogan <dima@secretsauce.net> Fri, 24 Feb 2017 23:42:28 -0800
feedgnuplot (1.40)
* If the options couldn't be parsed I don't dump the whole manpage
* --style and --rangesize can now take a comma-separated list of IDs
* 'any' is from List::MoreUtils, not List::Util
* the sleep-forever delay at end is now > 1000 days
-- Dima Kogan <dima@secretsauce.net> Fri, 25 Nov 2016 14:45:06 -0800
feedgnuplot (1.39)
* by default, histograms are plotted in expected ways
-- Dima Kogan <dima@secretsauce.net> Sat, 15 Oct 2016 20:45:15 -0700
feedgnuplot (1.38)
* hardcopy defaults:
- no enhanced text mode
- larger font size
-- Dima Kogan <dima@secretsauce.net> Wed, 27 Jul 2016 22:15:11 -0700
feedgnuplot (1.37)
* At the end of a streaming plot, include the last chunk of data
* Added --equation to the completions
-- Dima Kogan <dima@secretsauce.net> Fri, 01 Jan 2016 08:09:43 -0800
feedgnuplot (1.36)
* Added --equation to plot symbolic equations
-- Dima Kogan <dima@secretsauce.net> Fri, 13 Nov 2015 11:08:26 -0800
feedgnuplot (1.35)
* replaced a 'say' with 'print'. Should work better with ancient perls
* an "exit" command now has effect even with triggered-only replotting
* More sophisticated handling of termination conditions:
- Without --exit, we always end up with an interactive plot when the
input data is exhausted or when the user sends a ^C to the pipeline
- When streaming, the first ^C does not kill feedgnuplot
* Removed threading
-- Dima Kogan <dima@secretsauce.net> Sun, 01 Nov 2015 12:50:33 -0800
feedgnuplot (1.34)
* Fix for "Use of implicit split to @_ is deprecated". Thanks to Corey
Putkunz
* Declaring feedgnuplot as a package to let MetaCPAN index this
distribution
-- Dima Kogan <dima@secretsauce.net> Wed, 14 May 2014 00:45:24 -0700
feedgnuplot (1.33)
* fixed incorrect plotting of --timefmt --rangesize plots
-- Dima Kogan <dima@secretsauce.net> Thu, 06 Feb 2014 23:17:21 -0800
feedgnuplot (1.32)
* Added --rangesize and --rangesizeall. Different curves can now plot
different-size tuples
-- Dima Kogan <dima@secretsauce.net> Wed, 05 Feb 2014 13:57:58 -0800
feedgnuplot (1.31)
* Test suite requires gawk to get strftime()
-- Dima Kogan <dima@secretsauce.net> Sat, 25 Jan 2014 20:49:38 -0800
feedgnuplot (1.30)
* Added --with, --set, --unset, --style, --styleall
-- Dima Kogan <dima@secretsauce.net> Fri, 24 Jan 2014 15:38:07 -0800
feedgnuplot (1.29)
* added CPAN meta-data to require IPC::Run at build time
-- Dima Kogan <dima@secretsauce.net> Wed, 04 Dec 2013 21:12:40 -0800
feedgnuplot (1.28)
* Minor POD update
-- Dima Kogan <dima@secretsauce.net> Wed, 04 Dec 2013 02:01:05 -0800
feedgnuplot (1.27)
* Disabled tests that can fail on some arches (can be re-enabled with
environment variable)
* Removed sample debianization; this program is now in Debian proper
-- Dima Kogan <dima@secretsauce.net> Tue, 03 Dec 2013 23:37:40 -0800
feedgnuplot (1.26)
* Minor POD fixes

12
INSTALL
View File

@@ -1,9 +1,17 @@
If running on a Debian-based OS (this includes Ubuntu), it is highly recommended
to install this program as a package. In Debian and Ubuntu, feedgnuplot is in
the official repos, so all you need to do is
to install this program as a package. In debian/unstable feedgnuplot is in the
official repos, so all you need to do is
sudo apt-get install feedgnuplot
Otherwise a package can be built with
ln -fs package_definitions/debian debian
dpkg-buildpackage -us -uc -b
sudo dpkg -i ../feedgnuplot*.deb
This builds a debian package and installs it.
Without a package, an installation can be done with
perl Makefile.PL prefix=/usr/local

View File

@@ -1,6 +1,7 @@
Makefile.PL
MANIFEST
bin/feedgnuplot
lib/App/feedgnuplot.pm
t/manifest.t
t/plots.t
Changes

View File

@@ -20,9 +20,9 @@ sub parseversion
while(<PL>)
{
if( /VERSION = '([0-9\.]+)'/ )
if( /VERSION = ([0-9\.]+)/ )
{
if ( $1 ne $version )
if ( $1 != $version )
{
die "Version mismatch. Changes says version is '$version', but 'bin/feedgnuplot' says it is '$1'";
}
@@ -42,14 +42,30 @@ sub MY::libscan
# Don't install any symlinks (i.e. README.pod)
return undef if -l $file;
# Don't install any feedgnuplot.pm. This exists only to make CPAN index this
# distribution
return undef if $file =~ /feedgnuplot.pm/;
return $self->SUPER::libscan ($file);
}
# I want my manpage to go into the man section '1', NOT '1p'. Here I add a
# snippet to the end of the generated Makefile to force this
#
# I also generate the feedgnuplot.pm. This exists only to make CPAN index this
# distribution
sub MY::postamble
{
return "MAN1EXT := 1\n";
return <<'EOF'
MAN1EXT := 1
lib/App/feedgnuplot.pm: bin/feedgnuplot
mkdir -p lib/App
echo 'package App::feedgnuplot;' > $@
cat $^ >> $@
echo '1;' >> $@
dist: lib/App/feedgnuplot.pm
EOF
}
@@ -63,9 +79,7 @@ WriteMakefile
: ()),
PL_FILES => {},
EXE_FILES => [ 'bin/feedgnuplot' ],
BUILD_REQUIRES => { 'String::ShellQuote' => 0,
'List::MoreUtils' => 0,
'IPC::Run' => 0},
BUILD_REQUIRES => { 'String::ShellQuote' => 0},
dist => { COMPRESS => 'gzip -9f', SUFFIX => 'gz', },
clean => { FILES => 'feedgnuplot-*' },
clean => { FILES => 'feedgnuplot-* lib' },
);

File diff suppressed because it is too large Load Diff

View File

@@ -7,21 +7,12 @@ complete -W \
--colormap \
--curvestyle \
--curvestyleall \
--style \
--styleall \
--with \
--dataid \
--domain \
--dump \
--exit \
--extraValuesPerPoint \
--rangesizeall \
--rangesize \
--extracmds \
--set \
--unset \
--equation \
--image \
--geometry \
--hardcopy \
--help \

View File

@@ -26,26 +26,17 @@ _arguments -S
'--zmin:min Z:' \
'--zmax:max Z:' \
'*--y2:plot to place on the Y2 axis:' \
'(--with)--curvestyleall[Additional styles for ALL curves]:style' \
'(--with)--styleall[Additional styles for ALL curves]:style' \
'(--curvestyleall)--with[Additional styles for ALL curves]:style' \
'--curvestyleall[Additional styles for ALL curves]:style' \
'*--extracmds[Additional gnuplot commands]:command' \
'*--set[Additional 'set' gnuplot commands]:set-option' \
'*--unset[Additional 'unset' gnuplot commands]:unset-option' \
'*--equation[Raw symbolic equation]:equation' \
'--image[Image file to render beneath the data]:image:_files -g "(#i)*.(jpg|jpeg|png|gif)"' \
'--square[Plot data with square aspect ratio]' \
'--square_xy[For 3D plots, set square aspect ratio for ONLY the x,y axes]' \
'--hardcopy[Plot to a file]:new image filename:_files -g "(#i)*.(jpg|jpeg|png|gif)"' \
'--hardcopy[Plot to a file]:filename' \
'--maxcurves[The maximum allowed number of curves]:number of curves' \
'(--3d)--monotonic[Resets plot if an X in the past is seen]' \
'(--rangesizeall)--extraValuesPerPoint[How many extra values are given for each data range]:N'\
'(--extraValuesPerPoint)--rangesizeall[How many values are given for each data range]:N'\
'*--rangesize[How many values comprise a data range in this curve]:curve id: :N:' \
'--extraValuesPerPoint[How many extra values are given for each data point]:N'\
'--dump[Instead of printing to gnuplot, print to STDOUT]' \
'--geometry[The X11 geometry string]:geometry string:' \
'*--curvestyle[Additional styles for a curve]:curve id: :style:' \
'*--style[Additional styles for a curve]:curve id: :style:' \
'(--3d)*--histogram:plot to treat as a histogram:' \
'--binwidth:Histogram bin width:' \
'--histstyle:Style of histogram:(frequency unique cumulative cnormal)' \

134
debian/changelog vendored
View File

@@ -1,130 +1,11 @@
feedgnuplot (1.45-1) unstable; urgency=medium
* zsh completion: --hardcopy, --image suggest filenames
* --image now produces a nicer legend: just the filename
* --curvestyle now overrides --curvestyleall
- This is a bug fix
* The version is now treated as a string not as a number
- So "1.40" is distinct from "1.4"
-- Dima Kogan <dkogan@debian.org> Sun, 29 Oct 2017 14:06:26 -0700
feedgnuplot (1.44-1) unstable; urgency=medium
* --image always goes on the FRONT of the equation list
-- Dima Kogan <dkogan@debian.org> Tue, 20 Jun 2017 16:45:42 -0700
feedgnuplot (1.43-1) unstable; urgency=medium
* added --image as a convenience wrapper for --equation
-- Dima Kogan <dkogan@debian.org> Mon, 19 Jun 2017 13:16:18 -0700
feedgnuplot (1.42-1) unstable; urgency=medium
* Upstream update:
- Fixed regression: data can now come from STDIN or files on the
cmdline
- reworded manpage of --exit
-- Dima Kogan <dkogan@debian.org> Tue, 25 Apr 2017 11:02:18 -0700
feedgnuplot (1.41-1) unstable; urgency=medium
* Upstream update:
- Histograms: --xlen can coexist with --xmin/--xmax
- Histograms: work as expected with --xlen and --monotonic
- Histograms: better sanity checking of options
-- Dima Kogan <dkogan@debian.org> Fri, 24 Feb 2017 23:53:27 -0800
feedgnuplot (1.40-1) unstable; urgency=medium
* Upstream update:
- If the options couldn't be parsed I don't dump the whole manpage
- --style and --rangesize can now take a comma-separated list of IDs
- 'any' is from List::MoreUtils, not List::Util
- the sleep-forever delay at end is now > 1000 days
-- Dima Kogan <dkogan@debian.org> Fri, 25 Nov 2016 14:49:36 -0800
feedgnuplot (1.39-1) unstable; urgency=medium
* Upstream update:
- by default, histograms are plotted in expected ways
- No enhanced text mode in hardcopies, slightly larger font size
-- Dima Kogan <dkogan@debian.org> Sat, 15 Oct 2016 20:45:15 -0700
feedgnuplot (1.37-1) unstable; urgency=medium
* Upstream update: At the end of a streaming plot, include the last
chunk of data
-- Dima Kogan <dima@secretsauce.net> Fri, 01 Jan 2016 08:14:23 -0800
feedgnuplot (1.36-1) unstable; urgency=medium
* Upstream update: added --equation to plot symbolic equations
-- Dima Kogan <dima@secretsauce.net> Fri, 13 Nov 2015 11:14:30 -0800
feedgnuplot (1.35-1) unstable; urgency=medium
* Upstream update: fancier handling of termination conditions, no more
threading code
-- Dima Kogan <dima@secretsauce.net> Mon, 02 Nov 2015 13:55:32 -0800
feedgnuplot (1.34-2) unstable; urgency=medium
* Depends now works with the 'gnuplot5' packages
-- Dima Kogan <dima@secretsauce.net> Fri, 10 Oct 2014 14:05:17 -0700
feedgnuplot (1.34-1) unstable; urgency=medium
* Very minor upstream update
* gnuplot-nox can no satisfy the gnuplot dependency for feedgnuplot
-- Dima Kogan <dima@secretsauce.net> Wed, 06 Aug 2014 15:19:56 -0700
feedgnuplot (1.33-1) unstable; urgency=low
* Upstream update: fixed incorrect plotting of --timefmt --rangesize
plots
-- Dima Kogan <dima@secretsauce.net> Thu, 06 Feb 2014 23:19:02 -0800
feedgnuplot (1.32-1) unstable; urgency=low
* Added --rangesize and --rangesizeall. Different curves can now plot
different-size tuples
-- Dima Kogan <dima@secretsauce.net> Wed, 05 Feb 2014 14:00:44 -0800
feedgnuplot (1.30-1) unstable; urgency=low
* made the VCS links canonical
* added --set, --unset, --with, --style, --styleall
-- Dima Kogan <dima@secretsauce.net> Fri, 24 Jan 2014 15:50:03 -0800
feedgnuplot (1.28-1) unstable; urgency=low
* Upstream update:
- Removed example debianization
- Removed unreliable unit tests from automated testing (Closes: #731080)
* gnuplot dependency now favors graphical gnuplot packages
* Removed Anton Gladky from the Uploaders
-- Dima Kogan <dima@secretsauce.net> Wed, 04 Dec 2013 02:05:08 -0800
feedgnuplot (1.26-1) unstable; urgency=low
[ Dima Kogan ]
* Minor POD update
-- Dima Kogan <dima@secretsauce.net> Sun, 20 Oct 2013 01:19:51 -0700
feedgnuplot (1.25-1) unstable; urgency=low
* Added test suite
* Added initial support for --timefmt. Currently time/date data is
supported only at the x-axis domain
@@ -135,10 +16,7 @@ feedgnuplot (1.26-1) unstable; urgency=low
* --hardcopy now handles piped output (gnuplot 'set output |process'
syntax)
[ Anton Gladky ]
* Add libipc-run-perl to Build-Depends to execute tests
-- Dima Kogan <dima@secretsauce.net> Sun, 20 Oct 2013 01:19:51 -0700
-- Dima Kogan <dima@secretsauce.net> Sun, 20 Oct 2013 00:57:23 -0700
feedgnuplot (1.24-2) unstable; urgency=low

12
debian/control vendored
View File

@@ -1,19 +1,17 @@
Source: feedgnuplot
Section: science
Priority: optional
Build-Depends: debhelper (>= 9), libstring-shellquote-perl, perl, gawk, gnuplot, libipc-run-perl
Build-Depends: debhelper (>= 9), libstring-shellquote-perl, perl, gawk, gnuplot
Maintainer: Debian Science Maintainers <debian-science-maintainers@lists.alioth.debian.org>
Uploaders: Dima Kogan <dima@secretsauce.net>
Uploaders: Dima Kogan <dima@secretsauce.net>, Anton Gladky <gladk@debian.org>
Standards-Version: 3.9.4
Homepage: https://github.com/dkogan/feedgnuplot
Vcs-Git: git://anonscm.debian.org/debian-science/packages/feedgnuplot.git
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=debian-science/packages/feedgnuplot.git
Vcs-Git: git://git.debian.org/git/debian-science/packages/feedgnuplot.git
Vcs-Browser: http://git.debian.org/?p=debian-science/packages/feedgnuplot.git
Package: feedgnuplot
Architecture: all
Depends: ${misc:Depends}, ${perl:Depends},
liblist-moreutils-perl,
gnuplot-qt | gnuplot-x11 | gnuplot-nox | gnuplot5-qt | gnuplot5-x11 | gnuplot5-nox | gnuplot
Depends: ${misc:Depends}, ${perl:Depends}, gnuplot
Description: Pipe-oriented frontend to Gnuplot
Flexible, command-line-oriented frontend to Gnuplot. Creates plots from data
coming in on STDIN or given in a filename passed on the commandline. Various

View File

@@ -1,58 +0,0 @@
# Sample spec file for rpm-based systems. Debian-based systems already have this
# packaged, so we do not ship those here
Name: feedgnuplot
Version: 1.38
Release: 1%{?dist}
Summary: Pipe-oriented frontend to Gnuplot
BuildArch: noarch
License: Artistic or GPL-1+
URL: https://www.github.com/dkogan/feedgnuplot/
Source0: https://www.github.com/dkogan/feedgnuplot/archive/v%{version}.tar.gz#/%{name}-%{version}.tar.gz
BuildRequires: /usr/bin/pod2html
BuildRequires: perl-String-ShellQuote
BuildRequires: perl-ExtUtils-MakeMaker
BuildRequires: perl
BuildRequires: gawk
BuildRequires: gnuplot
BuildRequires: perl-IPC-Run
Requires: gnuplot
%description
Flexible, command-line-oriented frontend to Gnuplot. Creates plots from data
coming in on STDIN or given in a filename passed on the commandline. Various
data representations are supported, as is hardcopy output and streaming display
of live data.
%prep
%setup -q
%build
perl Makefile.PL INSTALLDIRS=vendor
make
pod2html --title=feedgnuplot bin/feedgnuplot > feedgnuplot.html
%install
make install DESTDIR=%{buildroot} PREFIX=/usr
mkdir -p %{buildroot}%{_defaultdocdir}/%{name}
cp Changes LICENSE feedgnuplot.html %{buildroot}%{_defaultdocdir}/%{name}
mkdir -p %{buildroot}%{_datadir}/zsh/site-functions
cp completions/zsh/* %{buildroot}%{_datadir}/zsh/site-functions
mkdir -p %{buildroot}%{_datadir}/bash-completion/completions
cp completions/bash/* %{buildroot}%{_datadir}/bash-completion/completions
rm -rf %{buildroot}/usr/lib64
%files
%{_bindir}/*
%{_datadir}/zsh/*
%{_datadir}/bash-completion/*
%doc %{_defaultdocdir}/%{name}/*
%doc %{_mandir}

View File

@@ -0,0 +1,111 @@
feedgnuplot (1.22) unstable; urgency=low
* removed --size option
-- Dima Kogan <dima@secretsauce.net> Mon, 03 Sep 2012 08:33:26 -0700
feedgnuplot (1.21) unstable; urgency=low
* removed the POD from the script to its own file
* fixed regression to allow no given extracmds, histogram or y2
options
-- Dima Kogan <dima@secretsauce.net> Sun, 02 Sep 2012 23:52:21 -0700
feedgnuplot (1.20) unstable; urgency=low
* no longer hardcoding 'x11' as the default terminal
* added histogram support
* generic terminals can now be requested
* --extracmds, --histogram, --y2 can now take comma-separated lists
-- Dima Kogan <dima@secretsauce.net> Fri, 31 Aug 2012 01:35:50 -0700
feedgnuplot (1.19) unstable; urgency=low
* added --geometry option to specify plot dimensions
-- Dima Kogan <dima@secretsauce.net> Sat, 11 Feb 2012 21:04:42 -0800
feedgnuplot (1.18) unstable; urgency=low
* data-ids can now include characters such as -. Any non-whitespace
works
-- Dima Kogan <dima@secretsauce.net> Tue, 27 Dec 2011 16:47:36 -0800
feedgnuplot (1.17) unstable; urgency=low
[ Dima Kogan ]
* POD: removed -Winteractive, since this was apparently a mawk-ism
* added zsh and bash completions to the package
[ Hermann Schwarting ]
* add build dependency libtest-script-run-perl
-- Dima Kogan <dima@secretsauce.net> Sun, 20 Nov 2011 19:17:22 -0800
feedgnuplot (1.16) unstable; urgency=low
* deb version parser now works for any package name
* Some POD fixes
* now building a native package
-- Dima Kogan <dima@secretsauce.net> Fri, 11 Nov 2011 00:10:18 -0800
feedgnuplot (1.15-2) unstable; urgency=low
* added source format for the debianization
* added configuration to let git-buildpackage build this package
* standards bump to make lintian happier
-- Dima Kogan <dima@secretsauce.net> Sun, 23 Oct 2011 13:38:15 -0700
feedgnuplot (1.15-1) unstable; urgency=low
* Renamed main script from feedGnuplot to feedgnuplot
* Slightly improved packaging, added instructions, etc
-- Dima Kogan <dima@secretsauce.net> Sun, 16 Oct 2011 11:58:15 -0700
feedgnuplot (1.14-1) unstable; urgency=low
* New upstream release (added 'clear' command, documented commands)
-- Dima Kogan <dima@secretsauce.net> Sun, 22 May 2011 15:25:28 -0700
feedgnuplot (1.13-1) unstable; urgency=low
* New upstream release (Better streaming plot control)
-- Dima Kogan <dima@secretsauce.net> Tue, 26 Apr 2011 14:24:09 -0700
feedgnuplot (1.12-1) unstable; urgency=low
* New upstream release
-- Dima Kogan <dima@secretsauce.net> Tue, 19 Apr 2011 11:02:23 -0700
feedgnuplot (1.11-1) unstable; urgency=low
* New upstream release
-- Dima Kogan <dima@secretsauce.net> Sat, 09 Apr 2011 14:10:21 -0700
feedgnuplot (1.10-1) unstable; urgency=low
* New upstream release
-- Dima Kogan <dima@secretsauce.net> Sat, 09 Apr 2011 14:08:06 -0700
feedgnuplot (1.09-1) unstable; urgency=low
* New upstream release
-- Dima Kogan <dima@secretsauce.net> Sun, 03 Apr 2011 17:23:38 -0700
feedgnuplot (1.08-1) unstable; urgency=low
* Initial debianized release.
-- Dima Kogan <dima@secretsauce.net> Sun, 6 Feb 2011 15:58:22 -0800

View File

@@ -0,0 +1 @@
7

View File

@@ -0,0 +1,20 @@
Source: feedgnuplot
Section: science
Priority: extra
Build-Depends: debhelper (>= 7), libtest-script-run-perl, perl
Maintainer: Dima Kogan <dima@secretsauce.net>
Uploaders: Dima Kogan <dima@secretsauce.net>
Standards-Version: 3.9.3
Homepage: https://github.com/dkogan/feedgnuplot
Vcs-Git: git://github.com/dkogan/feedgnuplot.git
Vcs-Browser: https://github.com/dkogan/feedgnuplot
DM-Upload-Allowed: yes
Package: feedgnuplot
Architecture: all
Depends: ${misc:Depends}, ${perl:Depends}, gnuplot
Description: Pipe-oriented frontend to Gnuplot
Flexible, command-line-oriented frontend to Gnuplot. Creates plots from data
coming in on STDIN or given in a filename passed on the commandline. Various
data representations are supported, as is hardcopy output and streaming display
of live data.

View File

@@ -0,0 +1,24 @@
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Source: https://github.com/dkogan/feedgnuplot
Upstream-Contact: Dima Kogan, <dima@secretsauce.net>
Upstream-Name: feedgnuplot
Files: *
Copyright: 2011, Dima Kogan <dima@secretsauce.net>
License: Artistic or GPL-1+
License: Artistic
This program is free software; you can redistribute it and/or modify
it under the terms of the Artistic License, which comes with Perl.
.
On Debian GNU/Linux systems, the complete text of the Artistic License
can be found in `/usr/share/common-licenses/Artistic'.
License: GPL-1+
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 1, or (at your option)
any later version.
.
On Debian GNU/Linux systems, the complete text of version 1 of the
General Public License can be found in `/usr/share/common-licenses/GPL-1'.

View File

@@ -0,0 +1,2 @@
completions/bash/feedgnuplot /etc/bash_completion.d/
completions/zsh/_feedgnuplot /usr/share/zsh/vendor-completions

View File

@@ -0,0 +1,5 @@
[DEFAULT]
upstream-tree = branch
upstream-branch = master
debian-branch = master
debian-tag = debian-%(version)s

View File

@@ -0,0 +1,4 @@
#!/usr/bin/make -f
%:
dh $@

View File

@@ -0,0 +1 @@
3.0 (native)

17
t/happy_cpantesters.t Normal file
View File

@@ -0,0 +1,17 @@
#!perl
use strict;
use Test::More tests => 1;
# Here I use my bogus package (which only exists for CPAN indexing), and make
# sure it works. This test is needless too, it just exists to satisfy CPAN
# checks
BEGIN{
require_ok 'App::feedgnuplot';
}
diag("App::feedgnuplot/$App::feedgnuplot::VERSION");
__DATA__

588
t/plots.t
View File

@@ -5,9 +5,7 @@
# change the way the output looks will show up as test failures. Currently the
# reference plots come from gnuplot 4.6.4, and I make sure this is the version
# we're testing with
#
# Note that some tests are only executed when the RUN_ALL_TESTS environment
# variable is set.
# require a threaded perl for my tests. This block lifted verbatim from the cpantesters wiki
BEGIN {
@@ -17,20 +15,14 @@ BEGIN {
exit(0);
}
my $gawkversion = `gawk -V`;
if( !$gawkversion || $@ )
{
print("1..0 # Skip: gawk is required for strftime() in the test suite. Skipping tests.\n");
exit(0);
}
my $gnuplotVersion = `gnuplot --version`;
if( !$gnuplotVersion || $@)
open(my $pipe, 'gnuplot --version |');
if( !$pipe )
{
print("1..0 # Skip: gnuplot not installed. Tests require ver. 4.6.4; feedgnuplot works with any.\n");
exit(0);
}
my $gnuplotVersion = <$pipe>;
chomp $gnuplotVersion;
if ($gnuplotVersion ne "gnuplot 4.6 patchlevel 4")
{
@@ -39,7 +31,7 @@ BEGIN {
}
}
use Test::More tests => 58;
use Test::More tests => 52;
use File::Temp 'tempfile';
use IPC::Run 'run';
use String::ShellQuote;
@@ -326,7 +318,7 @@ tryplot( testname => 'basic line plot with bounds, square aspect ratio',
EOF
tryplot( testname => 'lines on both axes with labels, legends, titles',
cmd => q{seq 5 | gawk '{print 2*$1, $1*$1}'},
cmd => q{seq 5 | awk '{print 2*$1, $1*$1}'},
options => [qw(--lines --points),
'--legend', '0', 'data 0',
'--title', "Test plot",
@@ -375,7 +367,7 @@ tryplot( testname => 'lines on both axes with labels, legends, titles',
EOF
tryplot( testname => 'lines on both axes with labels, legends, titles; different styles',
cmd => q{seq 5 | gawk '{print 2*$1, $1*$1}'},
cmd => q{seq 5 | awk '{print 2*$1, $1*$1}'},
options => ['--legend', '0', 'data 0',
'--title', "Test plot",
qw(--y2 1 --y2label y2 --xlabel x --ylabel y --y2max 30),
@@ -425,7 +417,7 @@ tryplot( testname => 'lines on both axes with labels, legends, titles; different
EOF
tryplot( testname => 'domain plot',
cmd => q{seq 5 | gawk '{print 2*$1, $1*$1}'},
cmd => q{seq 5 | awk '{print 2*$1, $1*$1}'},
options => [qw(--lines --points), '--domain'],
refplot => <<'EOF' );
@@ -471,7 +463,7 @@ tryplot( testname => 'domain plot',
EOF
tryplot( testname => 'dataid plot',
cmd => q{seq 5 | gawk '{print 2*$1, $1*$1}'},
cmd => q{seq 5 | awk '{print 2*$1, $1*$1}'},
options => [qw(--lines --points),
qw(--dataid --autolegend)],
refplot => <<'EOF' );
@@ -518,7 +510,7 @@ tryplot( testname => 'dataid plot',
EOF
tryplot( testname => '3d spiral with bounds, labels',
cmd => q{seq 50 | gawk '{print 2*cos($1/5), sin($1/5), $1}'},
cmd => q{seq 50 | awk '{print 2*cos($1/5), sin($1/5), $1}'},
options => [qw(--lines --points),
qw(--3d --domain --zmin -5 --zmax 45 --zlabel z),
'--extracmds', 'set view 60,30'],
@@ -566,7 +558,7 @@ tryplot( testname => '3d spiral with bounds, labels',
EOF
tryplot( testname => '3d spiral with bounds, labels, square xy aspect ratio',
cmd => q{seq 50 | gawk '{print 2*cos($1/5), sin($1/5), $1}'},
cmd => q{seq 50 | awk '{print 2*cos($1/5), sin($1/5), $1}'},
options => [qw(--lines --points),
qw(--3d --domain --zmin -5 --zmax 45 --zlabel z),
'--extracmds', 'set view 60,30', '--square_xy'],
@@ -611,10 +603,197 @@ tryplot( testname => '3d spiral with bounds, labels, square xy aspect ratio',
EOF
tryplot( testname => 'Histogram plot',
cmd => q{seq 50 | awk '{print $1*$1}'},
options => [qw(--lines --points),
qw(--histo 0 --binwidth 50 --ymin 0 --curvestyleall), 'with boxes'],
refplot => <<'EOF' );
4 ++----------****----------+------------+-----------+------------+------------+-----------++
+ *+** + + + + + +
| * ** |
| * ** |
3.5 ++ * ** ++
| * ** |
| * ** |
| * ** |
| * ** |
3 ++ * *** ++
| * *** |
| * *** |
| * *** |
2.5 ++ * *** ++
| * *** |
| * *** |
| * *** |
2 ++ * **** *** ++
| * **** *** |
| * **** *** |
| * **** *** |
| * **** *** |
1.5 ++ * **** *** ++
| * **** *** |
| * **** *** |
| * **** *** |
1 ++ * ************************** ******** ************************** ** ++
| * **** *** **** *** **** *** **** *** **** *** **** *** **** *** ** |
| * **** *** **** *** **** *** **** *** **** *** **** *** **** *** ** |
| * **** *** **** *** **** *** **** *** **** *** **** *** **** *** ** |
| * **** *** **** *** **** *** **** *** **** *** **** *** **** *** ** |
0.5 ++ * **** *** **** *** **** *** **** *** **** *** **** *** **** *** ** ++
| * **** *** **** *** **** *** **** *** **** *** **** *** **** *** ** |
| * **** *** **** *** **** *** **** *** **** *** **** *** **** *** ** |
+ *+**** *** **** *** **** *** **** *** **** *** **** *** **** *** ** +
0 ++----------****************************-********-**************************-**----------++
-500 0 500 1000 1500 2000 2500 3000
EOF
tryplot( testname => 'Cumulative histogram',
cmd => q{seq 50 | awk '{print $1*$1}'},
options => [qw(--lines --points),
qw(--histo 0 --histstyle cum --binwidth 50 --ymin 0 --curvestyleall), 'with boxes'],
refplot => <<'EOF' );
50 ++-----------+------------+------------+------------+------------+-----------***----------++
+ + + + + + ** ***+* +
| **** *** * |
| *** **** *** * |
| ** *** **** *** * |
| ***** *** **** *** * |
| **** *** *** **** *** * |
40 ++ ** **** *** *** **** *** * ++
| ****** **** *** *** **** *** * |
| ***** *** **** *** *** **** *** * |
| *** *** *** **** *** *** **** *** * |
| ****** *** *** **** *** *** **** *** * |
| ** **** *** *** **** *** *** **** *** * |
| ****** **** *** *** **** *** *** **** *** * |
30 ++ *** *** **** *** *** **** *** *** **** *** * ++
| ****** *** **** *** *** **** *** *** **** *** * |
| *** *** *** **** *** *** **** *** *** **** *** * |
| ****** *** *** **** *** *** **** *** *** **** *** * |
| ** **** *** *** **** *** *** **** *** *** **** *** * |
| *** **** *** *** **** *** *** **** *** *** **** *** * |
| ****** **** *** *** **** *** *** **** *** *** **** *** * |
20 ++ *** *** **** *** *** **** *** *** **** *** *** **** *** * ++
| ****** *** **** *** *** **** *** *** **** *** *** **** *** * |
| ** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| *** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| **** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| ****** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| ** **** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
10 ++ ** **** *** *** **** *** *** **** *** *** **** *** *** **** *** * ++
| *** **** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| *** **** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| *** **** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| ***** **** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| * *** **** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
+ *+*** **** ***+*** **** ***+*** **** ***+*** **** ***+*** **** ***+* +
0 ++----------********************************************-********+***-****-*****----------++
-500 0 500 1000 1500 2000 2500 3000
EOF
tryplot( testname => 'Circles',
cmd => q{seq 5 | awk '{print $1,$1,$1/10}'},
options => [qw(--circles --domain)],
refplot => <<'EOF' );
5 ++-------+--------+--------+--------+--------+--------+--------+--------*******************
+ + + + + + + + * + *+
| * * *|
| ******** * *|
4.5 ++ ** ** * *+
| ** ** ** **|
| ** ** ** ** |
| * * ** ** |
| * * ** ** |
4 ++ * ** ********** ++
| * * |
| * * |
| * * * |
3.5 ++ ****** ** ** ++
| * * ** ** |
| * * ** ** |
| * * ******** |
3 ++ * ** ++
| * * |
| * * |
| * * |
| * * |
2.5 ++ * ****** ++
| ****** |
| ** ** |
| * * |
2 ++ * ** ++
| * ** |
| * * |
| ** ** |
| ****** |
1.5 ++ ++
| |
| * |
+ **** + + + + + + + + +
1 ++-----*-+**------+--------+--------+--------+--------+--------+--------+--------+-------++
0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5
EOF
tryplot( testname => 'Error bars (using extraValuesPerPoint)',
cmd => q{seq 5 | awk '{print $1,$1,$1/10}'},
options => [qw(--domain),
qw(--extraValuesPerPoint 1 --curvestyle 0), 'with errorbars'],
refplot => <<'EOF' );
5.5 ++---------+-----------+----------+----------+----------+-----------+----------+---------**
+ + + + + + + + *
| *
5 ++ +A
| *
| *
| *
4.5 ++ **
| *** |
| * |
4 ++ A ++
| * |
| * |
| *** |
3.5 ++ ++
| *** |
| * |
3 ++ A ++
| * |
| * |
| *** |
2.5 ++ ++
| |
| *** |
2 ++ A ++
| * |
| *** |
| |
1.5 ++ ++
| |
| |
1 A* ++
** |
| |
+ + + + + + + + +
0.5 ++---------+-----------+----------+----------+----------+-----------+----------+---------++
1 1.5 2 2.5 3 3.5 4 4.5 5
EOF
tryplot( testname => 'Monotonicity check',
cmd => q{seq 10 | gawk '{print (NR-1)%5,NR}'},
cmd => q{seq 10 | awk '{print (NR-1)%5,NR}'},
options => [qw(--lines --points --domain --monotonic)],
refplot => <<'EOF' );
@@ -661,7 +840,7 @@ EOF
tryplot( testname => 'basic --timefmt plot',
cmd => q{seq 5 | gawk '{print strftime("%d %b %Y %T",1382249107+$1,1),$1}'},
cmd => q{seq 5 | awk '{print strftime("%d %b %Y %T",1382249107+$1,1),$1}'},
options => ['--domain', '--timefmt', '%d %b %Y %H:%M:%S'],
refplot => <<'EOF' );
@@ -707,7 +886,7 @@ tryplot( testname => 'basic --timefmt plot',
EOF
tryplot( testname => '--timefmt plot with bounds',
cmd => q{seq 5 | gawk '{print strftime("%d %b %Y %T",1382249107+$1,1),$1}'},
cmd => q{seq 5 | awk '{print strftime("%d %b %Y %T",1382249107+$1,1),$1}'},
options => ['--domain', '--timefmt', '%d %b %Y %H:%M:%S',
'--xmin', '20 Oct 2013 06:05:00',
'--xmax', '20 Oct 2013 06:05:20'],
@@ -755,7 +934,7 @@ tryplot( testname => '--timefmt plot with bounds',
EOF
tryplot( testname => '--timefmt plot with --monotonic',
cmd => q{seq 10 | gawk '{x=(NR-1)%5; print strftime("%d %b %Y %T",1382249107+x,1),$1}'},
cmd => q{seq 10 | awk '{x=(NR-1)%5; print strftime("%d %b %Y %T",1382249107+x,1),$1}'},
options => ['--domain', '--timefmt', '%d %b %Y %H:%M:%S',
'--monotonic'],
refplot => <<'EOF' );
@@ -801,354 +980,6 @@ tryplot( testname => '--timefmt plot with --monotonic',
EOF
tryplot( testname => '--timefmt with custom rangesize',
cmd => q{seq 5 | gawk '{print strftime("%d %b %Y %T",1382249107+$1,1),$1,$1/10}'},
options => ['--domain', '--timefmt', '%d %b %Y %H:%M:%S',
qw(--with errorbars --rangesizeall 2)],
refplot => <<'EOF' );
5.5 ++---------+-----------+----------+----------+----------+-----------+----------+---------**
+ + + + + + + + *
| *
5 ++ +A
| *
| *
| *
4.5 ++ **
| *** |
| * |
4 ++ A ++
| * |
| * |
| *** |
3.5 ++ ++
| *** |
| * |
3 ++ A ++
| * |
| * |
| *** |
2.5 ++ ++
| |
| *** |
2 ++ A ++
| * |
| *** |
| |
1.5 ++ ++
| |
| |
1 A* ++
** |
| |
+ + + + + + + + +
0.5 ++---------+-----------+----------+----------+----------+-----------+----------+---------++
05:08 05:08 05:09 05:09 05:10 05:10 05:11 05:11 05:12
EOF
tryplot( testname => 'Error bars (using extraValuesPerPoint)',
cmd => q{seq 5 | gawk '{print $1,$1,$1/10}'},
options => [qw(--domain),
qw(--extraValuesPerPoint 1 --with errorbars)],
refplot => <<'EOF' );
5.5 ++---------+-----------+----------+----------+----------+-----------+----------+---------**
+ + + + + + + + *
| *
5 ++ +A
| *
| *
| *
4.5 ++ **
| *** |
| * |
4 ++ A ++
| * |
| * |
| *** |
3.5 ++ ++
| *** |
| * |
3 ++ A ++
| * |
| * |
| *** |
2.5 ++ ++
| |
| *** |
2 ++ A ++
| * |
| *** |
| |
1.5 ++ ++
| |
| |
1 A* ++
** |
| |
+ + + + + + + + +
0.5 ++---------+-----------+----------+----------+----------+-----------+----------+---------++
1 1.5 2 2.5 3 3.5 4 4.5 5
EOF
tryplot( testname => 'Error bars (using rangesizeall)',
cmd => q{seq 5 | gawk '{print $1,$1,$1/10}'},
options => [qw(--domain),
qw(--rangesizeall 2 --with errorbars)],
refplot => <<'EOF' );
5.5 ++---------+-----------+----------+----------+----------+-----------+----------+---------**
+ + + + + + + + *
| *
5 ++ +A
| *
| *
| *
4.5 ++ **
| *** |
| * |
4 ++ A ++
| * |
| * |
| *** |
3.5 ++ ++
| *** |
| * |
3 ++ A ++
| * |
| * |
| *** |
2.5 ++ ++
| |
| *** |
2 ++ A ++
| * |
| *** |
| |
1.5 ++ ++
| |
| |
1 A* ++
** |
| |
+ + + + + + + + +
0.5 ++---------+-----------+----------+----------+----------+-----------+----------+---------++
1 1.5 2 2.5 3 3.5 4 4.5 5
EOF
tryplot( testname => 'Error bars (using rangesize, rangesizeall)',
cmd => q{seq 5 | gawk '{print $1,"vert",$1,$1/10,"horiz",5-$1,$1-$1/5,$1+$1/20}'},
options => [qw(--domain --dataid),
qw(--rangesize vert 2 --rangesizeall 3 --with xerrorbars --style vert), 'with errorbars',
qw(--xmin 1 --xmax 5 --ymin 0.5 --ymax 5.5)],
refplot => <<'EOF' );
+-----------+----------+-----------+----------+-----------+----------+-----------+---------**
+ + + + + + + + *
| *
5 ++ +A
| *
| *
| *
| **
| *** |
## * |
4 B# A ++
## * |
| * |
| *** |
| |
| *** |
| # # * |
3 ++ #########B## A ++
| # # * |
| * |
| *** |
| |
| |
| *** # # |
2 ++ A ##############B### ++
| * # # |
| *** |
| |
| |
| |
| # # |
1 A* ##################B##### ++
** # # |
| |
+ + + + + + + + +
+-----------+----------+-----------+----------+-----------+----------+-----------+----------+
1 1.5 2 2.5 3 3.5 4 4.5 5
EOF
SKIP:
{
# Some tests aren't 100% reliable, so I do not include them in automated testing. These are
#
# - Histogram and circle-plotting tests: these have inconsistent round-off
# behavior on different arches; specifically 32-bit and 64-bit x86. So both
# plots look fine, but not identical, thus the tests fail
#
# - Streaming tests. These tests have a temporal component, so the loading of
# the host machine can cause a test failure. It's fine pretty much all the
# time on my not-too-new laptop, but this is bad for automated testing
skip "Skipping unreliable tests. Set RUN_ALL_TESTS environment variable to run them all", 18 unless $ENV{RUN_ALL_TESTS};
tryplot( testname => 'Histogram plot',
cmd => q{seq 50 | gawk '{print $1*$1}'},
options => [qw(--lines --points),
qw(--histo 0 --binwidth 50 --ymin 0 --curvestyleall), 'with boxes'],
refplot => <<'EOF' );
4 ++----------****----------+------------+-----------+------------+------------+-----------++
+ *+** + + + + + +
| * ** |
| * ** |
3.5 ++ * ** ++
| * ** |
| * ** |
| * ** |
| * ** |
3 ++ * *** ++
| * *** |
| * *** |
| * *** |
2.5 ++ * *** ++
| * *** |
| * *** |
| * *** |
2 ++ * **** *** ++
| * **** *** |
| * **** *** |
| * **** *** |
| * **** *** |
1.5 ++ * **** *** ++
| * **** *** |
| * **** *** |
| * **** *** |
1 ++ * ************************** ******** ************************** ** ++
| * **** *** **** *** **** *** **** *** **** *** **** *** **** *** ** |
| * **** *** **** *** **** *** **** *** **** *** **** *** **** *** ** |
| * **** *** **** *** **** *** **** *** **** *** **** *** **** *** ** |
| * **** *** **** *** **** *** **** *** **** *** **** *** **** *** ** |
0.5 ++ * **** *** **** *** **** *** **** *** **** *** **** *** **** *** ** ++
| * **** *** **** *** **** *** **** *** **** *** **** *** **** *** ** |
| * **** *** **** *** **** *** **** *** **** *** **** *** **** *** ** |
+ *+**** *** **** *** **** *** **** *** **** *** **** *** **** *** ** +
0 ++----------****************************-********-**************************-**----------++
-500 0 500 1000 1500 2000 2500 3000
EOF
tryplot( testname => 'Cumulative histogram',
cmd => q{seq 50 | gawk '{print $1*$1}'},
options => [qw(--lines --points),
qw(--histo 0 --histstyle cum --binwidth 50 --ymin 0 --curvestyleall), 'with boxes'],
refplot => <<'EOF' );
50 ++-----------+------------+------------+------------+------------+-----------***----------++
+ + + + + + ** ***+* +
| **** *** * |
| *** **** *** * |
| ** *** **** *** * |
| ***** *** **** *** * |
| **** *** *** **** *** * |
40 ++ ** **** *** *** **** *** * ++
| ****** **** *** *** **** *** * |
| ***** *** **** *** *** **** *** * |
| *** *** *** **** *** *** **** *** * |
| ****** *** *** **** *** *** **** *** * |
| ** **** *** *** **** *** *** **** *** * |
| ****** **** *** *** **** *** *** **** *** * |
30 ++ *** *** **** *** *** **** *** *** **** *** * ++
| ****** *** **** *** *** **** *** *** **** *** * |
| *** *** *** **** *** *** **** *** *** **** *** * |
| ****** *** *** **** *** *** **** *** *** **** *** * |
| ** **** *** *** **** *** *** **** *** *** **** *** * |
| *** **** *** *** **** *** *** **** *** *** **** *** * |
| ****** **** *** *** **** *** *** **** *** *** **** *** * |
20 ++ *** *** **** *** *** **** *** *** **** *** *** **** *** * ++
| ****** *** **** *** *** **** *** *** **** *** *** **** *** * |
| ** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| *** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| **** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| ****** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| ** **** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
10 ++ ** **** *** *** **** *** *** **** *** *** **** *** *** **** *** * ++
| *** **** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| *** **** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| *** **** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| ***** **** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
| * *** **** *** *** **** *** *** **** *** *** **** *** *** **** *** * |
+ *+*** **** ***+*** **** ***+*** **** ***+*** **** ***+*** **** ***+* +
0 ++----------********************************************-********+***-****-*****----------++
-500 0 500 1000 1500 2000 2500 3000
EOF
tryplot( testname => 'Circles',
cmd => q{seq 5 | gawk '{print $1,$1,$1/10}'},
options => [qw(--circles --domain)],
refplot => <<'EOF' );
5 ++-------+--------+--------+--------+--------+--------+--------+--------*******************
+ + + + + + + + * + *+
| * * *|
| ******** * *|
4.5 ++ ** ** * *+
| ** ** ** **|
| ** ** ** ** |
| * * ** ** |
| * * ** ** |
4 ++ * ** ********** ++
| * * |
| * * |
| * * * |
3.5 ++ ****** ** ** ++
| * * ** ** |
| * * ** ** |
| * * ******** |
3 ++ * ** ++
| * * |
| * * |
| * * |
| * * |
2.5 ++ * ****** ++
| ****** |
| ** ** |
| * * |
2 ++ * ** ++
| * ** |
| * * |
| ** ** |
| ****** |
1.5 ++ ++
| |
| * |
+ **** + + + + + + + + +
1 ++-----*-+**------+--------+--------+--------+--------+--------+--------+--------+-------++
0.5 1 1.5 2 2.5 3 3.5 4 4.5 5 5.5
EOF
@@ -1158,7 +989,7 @@ note( "Starting to run streaming tests. These will take several seconds each" );
# points, and then "exit", so I should have two frames worth of data plotted. I
# pre-send a 0 so that the gnuplot autoscaling is always well-defined
tryplot( testname => 'basic streaming test',
cmd => q{seq 500 | gawk 'BEGIN{ print 0; } {print (NR==3)? "exit" : $0; fflush(); system("sleep 1.2");}'},
cmd => q{seq 500 | awk 'BEGIN{ print 0; } {print (NR==3)? "exit" : $0; fflush(); system("sleep 1.2");}'},
options => [qw(--lines --points --stream)],
refplot => <<'EOF' );
@@ -1244,7 +1075,7 @@ tryplot( testname => 'basic streaming test',
EOF
tryplot( testname => 'basic streaming test, twice as fast',
cmd => q{seq 500 | gawk 'BEGIN{ print 0; } {print (NR==3)? "exit" : $0; fflush(); system("sleep 0.6");}'},
cmd => q{seq 500 | awk 'BEGIN{ print 0; } {print (NR==3)? "exit" : $0; fflush(); system("sleep 0.6");}'},
options => [qw(--lines --points --stream 0.4)],
refplot => <<'EOF' );
@@ -1331,7 +1162,7 @@ EOF
tryplot( testname => 'streaming with --xlen',
cmd => q{seq 500 | gawk 'BEGIN{ print 0; } {print (NR==3)? "exit" : $0; fflush(); system("sleep 0.6");}'},
cmd => q{seq 500 | awk 'BEGIN{ print 0; } {print (NR==3)? "exit" : $0; fflush(); system("sleep 0.6");}'},
options => [qw(--lines --points --stream 0.4 --xlen 1.1)],
refplot => <<'EOF' );
@@ -1417,7 +1248,7 @@ tryplot( testname => 'streaming with --xlen',
EOF
tryplot( testname => 'streaming with --monotonic',
cmd => q{seq 500 | gawk '{if(NR==11) {print "exit";} else {x=(NR-1)%5; if(x==0) {print -1,-1;} print x,NR;}; fflush(); system("sleep 0.6");}'},
cmd => q{seq 500 | awk '{if(NR==11) {print "exit";} else {x=(NR-1)%5; if(x==0) {print -1,-1;} print x,NR;}; fflush(); system("sleep 0.6");}'},
options => [qw(--lines --points --stream 0.4 --domain --monotonic)],
refplot => <<'EOF' );
@@ -1823,7 +1654,7 @@ tryplot( testname => 'streaming with --monotonic',
EOF
tryplot( testname => '--timefmt streaming plot with --xlen',
cmd => q{seq 5 | gawk 'BEGIN{ print strftime("%d %b %Y %T",1382249107-1,1),-4;} {if(NR==3) {print "exit";} else{ print strftime("%d %b %Y %T",1382249107+$1,1),$1;} fflush(); system("sleep 0.6")}'},
cmd => q{seq 5 | awk 'BEGIN{ print strftime("%d %b %Y %T",1382249107-1,1),-4;} {if(NR==3) {print "exit";} else{ print strftime("%d %b %Y %T",1382249107+$1,1),$1;} fflush(); system("sleep 0.6")}'},
options => ['--points', '--lines',
'--domain', '--timefmt', '%d %b %Y %H:%M:%S',
qw(--stream 0.4 --xlen 3)],
@@ -1911,7 +1742,7 @@ tryplot( testname => '--timefmt streaming plot with --xlen',
EOF
tryplot( testname => '--timefmt streaming plot with --monotonic',
cmd => q{seq 10 | gawk '{x=(NR-1)%5; if(x==0) {print strftime("%d %b %Y %T",1382249107-1,-4),-4;} print strftime("%d %b %Y %T",1382249107+x,1),NR; fflush(); system("sleep 0.6")}'},
cmd => q{seq 10 | awk '{x=(NR-1)%5; if(x==0) {print strftime("%d %b %Y %T",1382249107-1,-4),-4;} print strftime("%d %b %Y %T",1382249107+x,1),NR; fflush(); system("sleep 0.6")}'},
options => ['--points', '--lines',
'--domain', '--timefmt', '%d %b %Y %H:%M:%S',
qw(--stream 0.4 --monotonic)],
@@ -2318,7 +2149,6 @@ tryplot( testname => '--timefmt streaming plot with --monotonic',
EOF
}
@@ -2327,7 +2157,7 @@ sub tryplot
my %args = @_;
my @options = ('--exit',
qw(--unset grid),
'--extracmds', 'unset grid',
'--terminal', 'dumb 100,40');
unshift @options, @{$args{options}};