summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mainwin.cc4
-rw-r--r--tests/test_pretty_print.cc2
-rwxr-xr-xtests/test_upload.py307
3 files changed, 2 insertions, 311 deletions
diff --git a/src/mainwin.cc b/src/mainwin.cc
index 7bcf926..9be1288 100644
--- a/src/mainwin.cc
+++ b/src/mainwin.cc
@@ -1830,8 +1830,8 @@ void MainWindow::helpLibrary()
info += QString( qglview->getRendererInfo().c_str() );
if (!this->openglbox) {
this->openglbox = new QMessageBox(QMessageBox::Information,
- "OpenGL Info", "OpenSCAD Detailed Library and Build Information",
- QMessageBox::Ok, this);
+ "OpenGL Info", "OpenSCAD Detailed Library and Build Information",
+ QMessageBox::Ok, this);
}
this->openglbox->setDetailedText( info );
this->openglbox->show();
diff --git a/tests/test_pretty_print.cc b/tests/test_pretty_print.cc
index 227d8ad..b07bab5 100644
--- a/tests/test_pretty_print.cc
+++ b/tests/test_pretty_print.cc
@@ -7,7 +7,6 @@
#include <cstddef>
#include <unistd.h>
-//#include <stdio.h>
#define PREQUOTE(x) #x
#define QUOTE(x) PREQUOTE(x)
@@ -18,7 +17,6 @@ int main( int argc, char * argv[] )
newargs[1] = const_cast<char *>(QUOTE( PYSRC ));
newargs[2] = const_cast<char *>(QUOTE( BUILDDIR ));
newargs[3] = NULL;
- //printf(":%s:%s:%s\n", newargs[0], newargs[1], newargs[2]);
return execv( newargs[0], newargs );
}
diff --git a/tests/test_upload.py b/tests/test_upload.py
deleted file mode 100755
index 59f4334..0000000
--- a/tests/test_upload.py
+++ /dev/null
@@ -1,307 +0,0 @@
-#!/usr/bin/python
-
-# test_upload.py copyright 2013 Don Bright <hugh.m.bright@gmail.com>
-# released under Zlib-style license:
-#
-# This software is provided 'as-is', without any express or implied
-# warranty. In no event will the authors be held liable for any damages
-# arising from the use of this software.
-#
-# Permission is granted to anyone to use this software for any purpose,
-# including commercial applications, and to alter it and redistribute it
-# freely, subject to the following restrictions:
-#
-# 1. The origin of this software must not be misrepresented; you must
-# not claim that you wrote the original software. If you use this
-# software in a product, an acknowledgment in the product documentation
-# would be appreciated but is not required.
-# 2. Altered source versions must be plainly marked as such, and must
-# not be misrepresented as being the original software. 3. This notice
-# may not be removed or altered from any source distribution.
-#
-# This license is based on zlib license by Jean-loup Gailly and Mark Adler
-
-
-# This script takes html output by test_pretty_print.py and uploads it
-# to a web server into an 'openscad_tests' subdir over ssh using sftp.
-# It then modifies the 'index.html' file in that directory to 'add to
-# the list' of reports on the remote web server.
-
-
-#
-# Design
-#
-# On the remote web server there is a directory called 'openscad_tests'
-# Inside of it is a file, 'index.html', that lists all the test reports
-# stored in that directory.
-#
-# This script uploads the last report created by test_pretty_print.py
-# Then it modifies the remote index.html file (if necessary) to display
-# a link to the new test report.
-#
-# Each test report is a single .html file, with all of the .png images
-# encoded directly into the file using the Data URI and base64 encoding.
-# The name of the report file is something like OS_cpu_GLinfo_hash.html, like
-# linux_x86_radeon_abcd.html
-#
-# See examples under 'usage()' below.
-#
-# Requirements for remote web server and local system:
-#
-# 1. Local system must have sftp access to remote server
-# This can be tested by runnig this: sftp user@remotehost
-# If you are using ssh-agent or an ssh-keyring it will go automatically.
-# Otherwise it will request your password to be typed in.
-#
-# 2. Remote web server only needs static html. There is no requirement
-# for php/cgi/etc.
-#
-# 3. Local system must have the python Paramiko library installed,
-# which in turn requires pycript to also be installed. (to PYTHONPATH)
-#
-# This script returns '1' on failure, '0' on success (shell-style)
-#
-
-# todo: support plain old ftp ??
-# todo: support new-fangled sites like dropbox ??
-
-import sys,os,platform,string,getpass
-
-try:
- import paramiko
-except:
- x='''
-please install the paramiko python library in your PYTHONPATH
-If that is not feasible, you can upload the single html report
-file by hand to any site that accepts html code.
-'''
-
-from test_pretty_print import ezsearch, read_sysinfo
-from test_cmdline_tool import execute_and_redirect
-
-debug_test_upload = False
-dryrun = False
-bytecount = 0
-
-def help():
- text='''
-test_upload.py
-
-usage:
-
- test_upload.py --username=uname --host=host --remotepath=/some/path \
- [--dryrun] [--debug]
-
-example1:
-
- $ ctest # result is Testing/Temporary/linux_x86_nvidia_report_abcd.html
- $ test_upload.py --username=andreis --host=web.sourceforge.net --remotepath=/home/project-web/projectxyz/htdocs/
- $ firefox http://projectxyz.sourceforge.net/openscad_tests/index.html
- # this should display a page with a link to show the test results
-
-example2:
-
- $ # run under X11, then run under Xvfb, upload both reports to one site
- $ ctest # X11 - result is Testing/Temporary/freebsd_x86_nvidia_abc_report.html
- $ test_upload.py --username=annag --host=fontanka.org --remotepath=/var/www/
- $ export DISPLAY= # dont use 'display' X, use Xvfb (different drivers)
- $ ctest # XVfb - result is Testing/Temporary/freebsd_x86_mesa_xyz_report.html
- $ test_upload.py --username=annag --host=fontanka.org --remotepath=/var/www/
- $ firefox http://fontanka.org/openscad_tests/index.html
- # result is 'index.html' with a link to the two separate test .html files
-
-'''
- print text
-
-
-def debug(x):
- if debug_test_upload:
- print 'test_upload.py:', x
- sys.stdout.flush()
-
-
-blankchunk='''<!-- __entry__ -->'''
-
-index_template='''
-<html>
-<head>
-OpenSCAD regression test results
-</head>
-<body>
- <h3>
- OpenSCAD regression test results
- </h3>
- <ul>
-''' + blankchunk + '''
- </ul>
-</body>
-</html>
-'''
-
-entry_template='''
- <li><a href="__href__">__rept_name__</a></li>
-'''
-
-
-def paramiko_upload( newrept_fname, username, host, remotepath ):
- global bytecount
- debug("running paramiko upload")
-
- basepath = 'openscad_tests'
- newrept_basefname = os.path.basename( newrept_fname )
- newrept_name = string.split( newrept_basefname,'.html')[0]
- debug("local file: "+ newrept_fname )
- debug("base filename: "+ newrept_basefname )
- debug("report name: "+ newrept_name )
-
-
-
- debug("connect to " + username + "@" + host)
- client = paramiko.SSHClient()
- client.set_missing_host_key_policy(paramiko.AutoAddPolicy)
- client.load_system_host_keys()
- if dryrun:
- debug("dryrun: no client.connect()")
- return 0
- try:
- client.connect(host,username=username)
- except paramiko.PasswordRequiredException, e:
- passw = getpass.getpass('enter passphrase for private ssh key: ')
- client.connect(host,username=username,password=passw)
-
- #stdin,stdout,stderr=client.exec_command('ls -l')
-
-
-
- debug("find remote path: " + remotepath)
- ftp = client.open_sftp()
- try:
- ftp.chdir( remotepath )
- except:
- debug("failed to change dir to remote path: "+remotepath)
- return 1
- debug("find basepath ( or create ):" + basepath )
- if not basepath in ftp.listdir():
- ftp.mkdir( basepath )
- ftp.chdir( basepath )
-
-
-
- debug("upload local report file to remote file:")
- debug(" local:"+newrept_fname)
- localf = open( newrept_fname, 'r' )
- rept_text = localf.read()
- localf.close()
- debug(" bytes read:"+str(len(rept_text)))
-
- debug("remote:"+os.path.join(ftp.getcwd(),newrept_basefname))
- f = ftp.file( newrept_basefname, 'w+' )
- f.write( rept_text )
- f.close()
- bytecount += len(rept_text)
-
-
- debug( "file uploaded. now, update index.html (or create blank) ")
-
- if not 'index.html' in ftp.listdir():
- f = ftp.file( 'index.html', 'w+')
- f.write(index_template)
- f.close()
- bytecount += len(index_template)
-
- f = ftp.file( 'index.html', 'r' )
- text = f.read()
- f.close()
-
- text2 = entry_template
- text2 = text2.replace( '__href__', newrept_basefname )
- text2 = text2.replace( '__rept_name__', newrept_name )
-
- if newrept_basefname in text:
- debug( newrept_basefname + " already linked from index.html")
- else:
- debug("add new report link to index.html")
- text = text.replace( blankchunk, blankchunk+'\n'+text2 )
-
- f = ftp.file( 'index.html', 'w+' )
- f.write(text)
- f.close()
- bytecount += len(text)
-
- debug("close connections")
- ftp.close()
- client.close()
- return 0
-
-def upload_unix( reptfile, username, host, remotepath):
- debug("detected unix-like system.")
- return paramiko_upload( reptfile, username, host, remotepath )
-
-def upload_darwin( reptfile, username, host, remotepath ):
- debug("detected osx/darwin")
- return upload_unix( reptfile, username, host, remotepath )
-
-def upload_windows( reptfile, username, host, remotepath ):
- debug("detected windows")
- print 'sorry, not implemented on windows'
- return 1
- # use pycript and paramiko
- # the problem is downloading them and installing them
-
-def upload( reptfile, username, host, remotepath ):
- sysname = platform.system().lower()
- result = 1
- if 'linux' in sysname or 'bsd' in sysname:
- result = upload_unix( reptfile, username, host, remotepath )
- elif 'darwin' in sysname:
- result = upload_darwin( reptfile, username, host, remotepath )
- elif 'windows' in platform.system():
- result = upload_windows( reptfile, username, host, remotepath )
- else:
- print "unknown system type. cant upload, sorry"
- return result
-
-def main():
- if '--debug' in string.join(sys.argv):
- global debug_test_upload
- debug_test_upload = True
- if '--dryrun' in string.join(sys.argv):
- global dryrun
- dryrun = True
-
- debug('running test_upload')
- debug('args: '+str(sys.argv[1:]))
-
- builddir = ezsearch('--builddir=(.*?) ',string.join(sys.argv)+' ')
- if builddir=='': builddir=os.getcwd()
- sysinfo, sysid = read_sysinfo(os.path.join(builddir,'sysinfo.txt'))
- debug("sysinfo: " + sysinfo[0:60].replace('\n','') + ". . . ")
- debug("sysid: " + sysid )
- if len(sysid)<6:
- print "unable to find valid system id"
- sys.exit(1)
-
- rept_basename = sysid + '_report' + '.html'
- rept_fname = os.path.join(builddir,'Testing','Temporary',rept_basename )
- debug("report filename:\n" + rept_fname )
-
- username = ezsearch('--username=(.*?) ',string.join(sys.argv)+' ')
- host = ezsearch('--host=(.*?) ',string.join(sys.argv)+' ')
- remotepath = ezsearch('--remotepath=(.*?) ',string.join(sys.argv)+' ')
-
- if rept_fname=='' or username=='' or host=='' or remotepath=='':
- help()
- sys.exit(1)
-
- res = upload( rept_fname, username, host, remotepath )
- if res==1:
- print "upload failed"
- return 1
- else:
- print "upload complete:", bytecount, "bytes written"
- return 0
-
-
-if __name__ == '__main__':
- sys.exit(main())
-
contact: Jan Huwald // Impressum