mbaz / Gaston.jl

A julia front-end for gnuplot.
MIT License
148 stars 30 forks source link

Tests failing on Windows, file access #62

Closed hustf closed 6 years ago

hustf commented 6 years ago

Running Julia through Cygwin, after installing GNUPlot:

julia> using Gaston

julia> run(`gnuplot --version`)
gnuplot 5.2 patchlevel 2

So far so good. Pkg.test() results in a file path failure that can probably be easily fixed. Just reporting for now:

WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:

gnuplot> set output "C:\cygwin64\tmp\/gastontest"
                                                 ^
         line 0:          cannot open file; output not changed
system error: No such file or directory
mbaz commented 6 years ago

I just commited a change to fix the path issue in Windows. I'm worried about the "unknown terminal" issue, though. Can you provide more details, so that I can try to reproduce it?

hustf commented 6 years ago

I believe the 'unknown terminal' is probably related to the new terminal type GNUTERM = sixel? I think this is pretty new, so the version might have an influence. Ref. issue #61.

More details, without checking out master below. I don't know if it's smart in this case, but this packages' tests COULD check for the existence of generated files.

Julia version 0.6.1, 64 bit, Cygwin:

julia> Pkg.test("Gaston")
INFO: Testing Gaston
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
  cannot open file; output not changed
system error: No such file or directory

WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:

gnuplot> set output "C:\cygwin64\tmp\/gastontest"
                                                 ^
         line 0:          cannot open file; output not changed
system error: No such file or directory

WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:

gnuplot> set output "C:\cygwin64\tmp\/gastontest"
                                                 ^
         line 0:          cannot open file; output not changed
system error: No such file or directory

WARNING: Gnuplot returned an error message:

gnuplot> set output "C:\cygwin64\tmp\/gastontest"
                                                 ^
         line 0:          cannot open file; output not changed
system error: No such file or directory

WARNING: Gnuplot returned an error message:

gnuplot> set output "C:\cygwin64\tmp\/gastontest"
                                                 ^
         line 0:          cannot open file; output not changed
system error: No such file or directory

WARNING: Gnuplot returned an error message:
  cannot open file; output not changed
system error: No such file or directory

WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
Test Summary: | Pass  Total
Pass expected |   61     61
WARNING: Gnuplot returned an error message:

gnuplot> et print "-"
         ^
         line 0: invalid command

Test Summary:    | Pass  Total
Failure expected |   47     47
INFO: Gaston tests passed
hustf commented 6 years ago

After checking out master:

julia> Pkg.test("Gaston")
INFO: Testing Gaston
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
WARNING: Gnuplot returned an error message:
WARNING: Plotting with an 'unknown' terminal.
No output will be generated. Please select a terminal with 'set terminal'.
Test Summary: | Pass  Total
Pass expected |   61     61
WARNING: Gnuplot returned an error message:

gnuplot> et print "-"
         ^
         line 0: invalid command

Test Summary:    | Pass  Total
Failure expected |   47     47
INFO: Gaston tests passed
hustf commented 6 years ago

This issue, as such, is closed I reckon.

If you want, I can submit a PR with setup for CI testing on Cygwin. But to get it actually working on this repo and not just on my potential fork of it, somebody must register a token with Appveyor. And as far as I understand, it is only the package owner that can get this secret token from github. The token would authorize Appveyor to listen in and react to changes in this repo. It's a bit of a tedious process the first time(s).

mbaz commented 6 years ago

First of all, I'd like to understand why gnuplot thinks the terminal is unknown, when Gaston explicitly sets the terminal (to "wxt" by default) before every plot.

Can you open gnuplot in a terminal by itself, and run set term? Do you see "wxt" among the options listed? I suspect that your version of gnuplot has no support for wxt.

hustf commented 6 years ago

That seems right. No wxt in the list. ... and I see that the current terminal is x11 again. In order to have sixel permanently, I suppose I must add some pretend system environment variable to my cygwin-set up?

$ gnuplot

        G N U P L O T
        Version 5.2 patchlevel 2    last modified 2017-11-15

        Copyright (C) 1986-1993, 1998, 2004, 2007-2017
        Thomas Williams, Colin Kelley and many others

        gnuplot home:     http://www.gnuplot.info
        faq, bugs, etc:   type "help FAQ"
        immediate help:   type "help"  (plot window: hit 'h')

Terminal type is now 'x11'
gnuplot> set term

Available terminal types:
       cairolatex  LaTeX picture environment using graphicx package and Cairo backend
           canvas  HTML Canvas object
              cgm  Computer Graphics Metafile
          context  ConTeXt with MetaFun (for PDF documents)
          domterm  DomTerm terminal emulator with embedded SVG
           dpu414  Seiko DPU-414 thermal printer [small medium large]
             dumb  ascii art for anything that prints text
              dxf  dxf-file for AutoCad (default size 120x80)
            eepic  EEPIC -- extended LaTeX picture environment
              emf  Enhanced Metafile format
            emtex  LaTeX picture environment with emTeX specials
         epscairo  eps terminal based on cairo
         epslatex  LaTeX picture environment using graphicx package
     epson_180dpi  Epson LQ-style 180-dot per inch (24 pin) printers
      epson_60dpi  Epson-style 60-dot per inch printers
      epson_lx800  Epson LX-800, Star NL-10, NX-1000, PROPRINTER ...
              fig  FIG graphics language for XFIG graphics editor
              ggi  GGI target
              gif  GIF images using libgd and TrueType fonts
             gpic  GPIC -- Produce graphs in groff using the gpic preprocessor
           hp500c  HP DeskJet 500c, [75 100 150 300] [rle tiff]
             hpdj  HP DeskJet 500, [75 100 150 300]
             hpgl  HP7475 and relatives [number of pens] [eject]
           hpljii  HP Laserjet series II, [75 100 150 300]
             hppj  HP PaintJet and HP3630 [FNT5X9 FNT9X17 FNT13X25]
             jpeg  JPEG images using libgd and TrueType fonts
            latex  LaTeX picture environment
              lua  Lua generic terminal driver
               mf  Metafont plotting standard
              mif  Frame maker MIF 3.00 format
               mp  MetaPost plotting standard
          nec_cp6  NEC printer CP6, Epson LQ-800 [monochrome color draft]
          okidata  OKIDATA 320/321 Standard
              pbm  Portable bitmap [small medium large] [monochrome gray color]
             pcl5  HP Designjet 750C, HP Laserjet III/IV, etc. (many options)
         pdfcairo  pdf terminal based on cairo
              png  PNG images using libgd and TrueType fonts
         pngcairo  png terminal based on cairo
       postscript  PostScript graphics, including EPSF embedded files (*.eps)
          pslatex  LaTeX picture environment with PostScript \specials
            pstex  plain TeX with PostScript \specials
         pstricks  LaTeX picture environment with PSTricks macros
              qms  QMS/QUIC Laser printer (also Talaris 1200 and others)
            sixel  Sixel Graphics
          sixelgd  sixel using libgd and TrueType fonts
Press return for more:
            starc  Star Color Printer
              svg  W3C Scalable Vector Graphics
      tandy_60dpi  Tandy DMP-130 series 60-dot per inch graphics
          tek40xx  Tektronix 4010 and others; most TEK emulators
          tek410x  Tektronix 4106, 4107, 4109 and 420X terminals
          texdraw  LaTeX texdraw environment
             tgif  TGIF X11 [mode] [x,y] [dashed] ["font" [fontsize]]
             tikz  TeX TikZ graphics macros via the lua script driver
         tkcanvas  Tk canvas widget
             tpic  TPIC -- LaTeX picture environment with tpic \specials
          unknown  Unknown terminal type - not a plotting device
            vttek  VT-like tek40xx terminal emulator
              x11  X11 Window System interactive terminal
             xlib  X11 Window System (dump of gnuplot_x11 command stream)
            xterm  Xterm Tektronix 4014 Mode
mbaz commented 6 years ago

I will add support for sixel soon (pull requests encouraged), so all you'd need to do is run set(terminal="sixel") after you load Gaston.

However, this opens up another problem for me, though: if there are non-wxt compatible gnuplot installations out there, I need to figure out how to support them. I could set the default terminal to x11, but it really is an ugly terminal compared to the alternatives.

One option would be to fall back on x11 for testing only... I need to think about it.