diff options
Diffstat (limited to 'src/io/streamtest.cpp')
| -rw-r--r-- | src/io/streamtest.cpp | 256 |
1 files changed, 0 insertions, 256 deletions
diff --git a/src/io/streamtest.cpp b/src/io/streamtest.cpp deleted file mode 100644 index 5d270580b..000000000 --- a/src/io/streamtest.cpp +++ /dev/null @@ -1,256 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -/** @file - * TODO: insert short description here - *//* - * Authors: see git history - * - * Copyright (C) 2015 Authors - * Released under GNU GPL v2+, read the file 'COPYING' for more information. - */ - - -#include <stdio.h> -#include <limits.h> // realpath -#include <stdlib.h> // mkdtemp, realpath -#include <unistd.h> // chdir -#include <string.h> // strlen, strncpy, strrchr - -#include "inkscapestream.h" -#include "base64stream.h" -#include "gzipstream.h" -#include "stringstream.h" -#include "uristream.h" -#include "xsltstream.h" - -// quick way to pass the name of the executable into the test -char myself[PATH_MAX]; - -// names and path storage for other tests -char *xmlname = "crystalegg.xml"; -char xmlpath[PATH_MAX]; -char *xslname = "doc2html.xsl"; -char xslpath[PATH_MAX]; - -bool testUriStream() -{ - printf("######### UriStream copy ############\n"); - Inkscape::URI inUri(myself); - Inkscape::IO::UriInputStream ins(inUri); - Inkscape::URI outUri("streamtest.copy"); - Inkscape::IO::UriOutputStream outs(outUri); - - pipeStream(ins, outs); - - ins.close(); - outs.close(); - - return true; -} - -bool testWriter() -{ - printf("######### OutputStreamWriter ############\n"); - Inkscape::IO::StdOutputStream outs; - Inkscape::IO::OutputStreamWriter writer(outs); - - writer << "Hello, world! " << 123.45 << " times\n"; - - writer.printf("There are %f quick brown foxes in %d states\n", 123.45, 88); - - return true; -} - -bool testStdWriter() -{ - printf("######### StdWriter ############\n"); - Inkscape::IO::StdWriter writer; - - writer << "Hello, world! " << 123.45 << " times\n"; - - writer.printf("There are %f quick brown foxes in %d states\n", 123.45, 88); - - return true; -} - -bool testBase64() -{ - printf("######### Base64 Out ############\n"); - Inkscape::URI plainInUri(xmlpath); - Inkscape::IO::UriInputStream ins1(plainInUri); - - Inkscape::URI b64OutUri("crystalegg.xml.b64"); - Inkscape::IO::UriOutputStream outs1(b64OutUri); - Inkscape::IO::Base64OutputStream b64Outs(outs1); - - pipeStream(ins1, b64Outs); - - ins1.close(); - b64Outs.close(); - - printf("######### Base64 In ############\n"); - Inkscape::URI b64InUri("crystalegg.xml.b64"); - Inkscape::IO::UriInputStream ins2(b64InUri); - Inkscape::IO::Base64InputStream b64Ins(ins2); - - Inkscape::URI plainOutUri("crystalegg.xml.b64dec"); - Inkscape::IO::UriOutputStream outs2(plainOutUri); - - pipeStream(b64Ins, outs2); - - outs2.close(); - b64Ins.close(); - - return true; -} - -bool testXslt() -{ - printf("######### XSLT Sheet ############\n"); - Inkscape::URI xsltSheetUri(xslpath); - Inkscape::IO::UriInputStream xsltSheetIns(xsltSheetUri); - Inkscape::IO::XsltStyleSheet stylesheet(xsltSheetIns); - xsltSheetIns.close(); - - Inkscape::URI sourceUri(xmlpath); - Inkscape::IO::UriInputStream xmlIns(sourceUri); - - printf("######### XSLT Input ############\n"); - Inkscape::URI destUri("test.html"); - Inkscape::IO::UriOutputStream xmlOuts(destUri); - - Inkscape::IO::XsltInputStream xsltIns(xmlIns, stylesheet); - pipeStream(xsltIns, xmlOuts); - xsltIns.close(); - xmlOuts.close(); - - - printf("######### XSLT Output ############\n"); - - Inkscape::IO::UriInputStream xmlIns2(sourceUri); - - Inkscape::URI destUri2("test2.html"); - Inkscape::IO::UriOutputStream xmlOuts2(destUri2); - - Inkscape::IO::XsltOutputStream xsltOuts(xmlOuts2, stylesheet); - pipeStream(xmlIns2, xsltOuts); - xmlIns2.close(); - xsltOuts.close(); - - return true; -} - -bool testGzip() -{ - - printf("######### Gzip Output ############\n"); - Inkscape::URI gzUri("test.gz"); - Inkscape::URI sourceUri(xmlpath); - Inkscape::IO::UriInputStream sourceIns(sourceUri); - Inkscape::IO::UriOutputStream gzOuts(gzUri); - - Inkscape::IO::GzipOutputStream gzipOuts(gzOuts); - pipeStream(sourceIns, gzipOuts); - sourceIns.close(); - gzipOuts.close(); - - printf("######### Gzip Input ############\n"); - - Inkscape::IO::UriInputStream gzIns(gzUri); - Inkscape::URI destUri("crystalegg2.xml"); - Inkscape::IO::UriOutputStream destOuts(destUri); - - Inkscape::IO::GzipInputStream gzipIns(gzIns); - pipeStream(gzipIns, destOuts); - gzipIns.close(); - destOuts.close(); - - return true; -} - -bool doTest() -{ - if (!testUriStream()) - { - return false; - } - if (!testWriter()) - { - return false; - } - if (!testStdWriter()) - { - return false; - } - if (!testBase64()) - { - return false; - } - if (!testXslt()) - { - return false; - } - if (!testGzip()) - { - return false; - } - return true; -} - -void path_init(char *path, char *name) -{ - if (strlen(name)>PATH_MAX-strlen(myself)) - { - printf("merging paths would be too long\n"); - exit(1); - } - strncpy(path,myself,PATH_MAX); - char * ptr = strrchr(path,'/'); - if (!ptr) - { - printf("path '%s' is missing any slashes\n",path); - exit(1); - } - strncpy(ptr+1,name,strlen(name)+1); - path[PATH_MAX-1] = '\0'; - printf("'%s'\n",path); -} - - -int main(int argc, char **argv) -{ - if (!realpath(argv[0],myself)) - { - perror("realpath"); - return 1; - } - path_init(xmlpath,xmlname); - path_init(xslpath,xslname); - - // create temp files somewhere else instead of current dir - // TODO: clean them up too - char * testpath = strdup("/tmp/streamtest-XXXXXX"); - char * testpath2; - testpath2 = mkdtemp(testpath); - free(testpath); - if (!testpath2) - { - perror("mkdtemp"); - return 1; - } - if (chdir(testpath2)) - { - perror("chdir"); - return 1; - } - - if (!doTest()) - { - printf("#### Test failed\n"); - return 1; - } - else - { - printf("##### Test succeeded\n"); - } - return 0; -} |
