Commit graph

293 commits

Author SHA1 Message Date
Brian Gough
8e86f02c43 set encoding when reading from streams
using .toString() works most of the time but can lead to utf8 characters being
broken across chunk boundaries.

https://nodejs.org/api/stream.html#stream_readable_setencoding_encoding
2020-05-07 10:30:14 +01:00
Tim Alby
e3b1472c7f retry once on EPIPE errors
Co-Authored-By: Jakob Ackermann <jakob.ackermann@overleaf.com>
2020-04-10 12:28:11 +02:00
Tim Alby
66447211d0 fix arguments order
Co-Authored-By: Jakob Ackermann <jakob.ackermann@overleaf.com>
2020-04-10 12:27:15 +02:00
Jakob Ackermann
6a615d50d3 Merge remote-tracking branch 'origin/master' into jpa-entry-point-cleanup 2020-04-03 14:05:36 +02:00
Jakob Ackermann
c700a0ab9d Merge pull request #159 from overleaf/jpa-fix-docker-modem-error-scheme
[misc] keep up with the error signature of dockerode/docker-modem
2020-04-03 14:04:06 +02:00
Jakob Ackermann
101c4ea4dc [misc] use a directory in /tmp for temporary data 2020-04-03 12:36:32 +02:00
Jakob Ackermann
6777432569 [misc] add a metric for failing downloads 2020-04-03 12:35:40 +02:00
Jakob Ackermann
4a19f022fc [misc] keep up with the error signature of dockerode/docker-modem
https://github.com/apocas/docker-modem/blob/v2.1.1/lib/modem.js#L296
2020-03-27 10:39:45 +01:00
mserranom
8641d0ef0f updated sandboxed-module, chai and metrics-sharelatex 2020-03-16 17:14:04 +01:00
mserranom
7e7d234350 updated mocha and sinon, fixed tests 2020-03-12 10:35:11 +01:00
mserranom
cf6c8ab496 removed mkdirp dependency and replaced with fs.mkdir 2020-03-12 10:22:08 +01:00
mserranom
41533d8888 moved decaffeinated files to js folder 2020-02-25 17:15:31 +01:00
decaffeinate
252f4c704b decaffeinate: Run post-processing cleanups on loadTest.coffee 2020-02-25 17:03:58 +01:00
decaffeinate
3901fe9cd2 decaffeinate: Convert loadTest.coffee to JS 2020-02-25 17:03:57 +01:00
decaffeinate
e20da38e09 decaffeinate: Rename loadTest.coffee from .coffee to .js 2020-02-25 17:03:57 +01:00
decaffeinate
2057a565ec decaffeinate: Run post-processing cleanups on SmokeTests.coffee 2020-02-25 17:03:39 +01:00
decaffeinate
b6991f5ff9 decaffeinate: Convert SmokeTests.coffee to JS 2020-02-25 17:03:37 +01:00
decaffeinate
92ed86bb33 decaffeinate: Rename SmokeTests.coffee from .coffee to .js 2020-02-25 17:03:36 +01:00
mserranom
fa37ed865a added container monitor cleanup to fix hanging tests 2020-02-20 17:24:28 +01:00
mserranom
4c0fd2b6f4 fixed test paths 2020-02-19 12:38:54 +01:00
mserranom
778f2a8420 prettier: convert test/acceptance decaffeinated files to Prettier format 2020-02-19 12:16:14 +01:00
mserranom
c5a6496b71 decaffeinate: rename test/acceptance/coffee to test/acceptance/js 2020-02-19 12:16:11 +01:00
decaffeinate
d1da978e39 decaffeinate: Run post-processing cleanups on BrokenLatexFileTests.coffee and 9 other files 2020-02-19 12:16:07 +01:00
decaffeinate
3d3861cb24 decaffeinate: Convert BrokenLatexFileTests.coffee and 9 other files to JS 2020-02-19 12:16:00 +01:00
decaffeinate
035786b204 decaffeinate: Rename BrokenLatexFileTests.coffee and 9 other files from .coffee to .js 2020-02-19 12:15:54 +01:00
mserranom
a62d8186e9 prettier: convert test/unit decaffeinated files to Prettier format 2020-02-19 12:15:37 +01:00
mserranom
89360bfe77 decaffeinate: rename test/unit/coffee to test/unit/js 2020-02-19 12:15:30 +01:00
decaffeinate
4c79f22389 decaffeinate: Run post-processing cleanups on CompileControllerTests.coffee and 17 other files 2020-02-19 12:15:25 +01:00
decaffeinate
37b4e96de4 decaffeinate: Convert CompileControllerTests.coffee and 17 other files to JS 2020-02-19 12:15:08 +01:00
decaffeinate
e57097afb4 decaffeinate: Rename CompileControllerTests.coffee and 17 other files from .coffee to .js 2020-02-19 12:14:56 +01:00
Eric Mc Sween
dab6e9aa8e Send output files on timeout
The unconventional use of callbacks to return both an error and data
after compilation created a subtle bug where the output files were
dropped by the LockManager in case of an error such as a timeout.

This prevented the frontend to show error logs when a timeout occurs,
creating confusion among users.

We now attach the output files to the error so that they reach the
controller and are sent back to the web service.
2019-10-22 16:31:37 -04:00
Brian Gough
418bda28e1 Merge pull request #119 from overleaf/bg-increase-acceptance-test-timeout
increase timeout for long-running acceptance tests
2019-05-16 09:17:26 +01:00
Michael Mazour
1ddf9283f2 Add flags option to request JSON
Adds a `flags` parameter to the request JSON, appearing under the `compile.options` key (alongside such stalwarts as `compiler`, `timeout`, etc.).

This is primarily to support `-file-line-error` as an option, but could have other uses as well.

`flags` should be an array of strings, or absent. If supplied, the listed arguments are added to the base latexmk command.
2019-05-14 16:24:34 +01:00
Brian Gough
bc6e560448 increase timeout for long-running acceptance tests 2019-04-01 09:42:54 +01:00
Brian Gough
038c81f868 use explicit json content-type to avoid security issues with text/html 2019-02-12 16:54:59 +00:00
Christopher Hoskin
7a3f1c81bd Switch to node 10 2019-01-16 15:11:49 +00:00
Henry Oswald
c67e88fcb3 have failed compiles warn rather than be an error 2018-11-23 15:10:35 +00:00
Brian Gough
34acce8bda use TikzManager to create main file for pstool package 2018-10-10 16:13:20 +01:00
Brian Gough
74dd560979 extend caching for tikz, minted and markdown files 2018-10-04 16:56:48 +01:00
Brian Gough
9870683ae8 Merge pull request #96 from sharelatex/bg-cache-eps-to-pdf-converted-files
cache pdf files generated by epstopdf
2018-09-11 13:31:26 +01:00
Henry Oswald
3c12f60eeb change timeout test latex code 2018-09-11 11:34:25 +01:00
Henry Oswald
3fc3cd11f4 fix unit tests 2018-09-11 10:21:37 +01:00
Henry Oswald
ce44fa3390 bump wordcount timeouts, taken from 82b996b145196711e439d7d7045f53498c1afa1a 2018-09-11 09:55:10 +01:00
Brian Gough
5a635e5465 cache pdf files generated by epstopdf 2018-09-11 09:44:22 +01:00
Henry Oswald
2aaadc6124 fix unit tests 2018-08-23 00:21:05 +01:00
Henry Oswald
6c0665bb49 change sync to async for lockfile debugging 2018-08-22 22:17:02 +01:00
Henry Oswald
e46b6563c0 change override to leave image name so it works for wl_texlive 2018-07-16 17:25:14 +01:00
Henry Oswald
846c2b1e28 move texliveImageNameOveride further down request so it works for
compile tests
2018-07-13 11:52:49 +01:00
Henry Oswald
4ec8a423cb added texliveImageNameOveride 2018-07-13 10:37:22 +01:00
Henry Oswald
eb89ca1d3b added filestoreDomainOveride 2018-07-03 16:41:34 +01:00
Brian Gough
b95317c8fe increase timeout on wordcount 2018-06-25 14:06:18 +01:00
Henry Oswald
4c96abd6c5 grep works with command
updated build scripts
acceptence tests break, files are written as root when user is node
2018-03-29 17:07:22 +01:00
Henry Oswald
e4e30cf2e2 fixed commended tests 2018-03-14 15:44:58 +00:00
Henry Oswald
9a519f0d3d added docker runner into core codebase
supports both local command runner and docker runner

added docker files for tex live

also fixed tests so they exit correctly & removed debug lines
2018-03-14 15:44:49 +00:00
Henry Oswald
729d29253d fix url fetcher tests so they exit correctly 2018-03-05 10:39:46 +00:00
Henry Oswald
2168f20715 uncomment tests 2018-03-02 17:59:37 +00:00
Henry Oswald
f9b6b3dda8 make timeout latex more complex(slower) 2018-03-02 17:58:34 +00:00
Henry Oswald
f39d14bf1b unit tests pass, acceptence fail
uncomment tests
2018-03-02 17:34:41 +00:00
Henry Oswald
3399f55153 wip, docker container is correctly created 2018-03-02 17:14:23 +00:00
Henry Oswald
fdac655cd4 acceptence tests pass inside docker container (apart from sync) 2018-03-02 17:14:23 +00:00
Henry Oswald
5cf3c904cb mvp
needs hacked pacth in docker runner

wip

most tests pass
2018-03-02 17:14:20 +00:00
James Allen
df21b9de53 Provide hosts and siblings container as environment settings and add npm run start script
wip acceptence tests run, but don't all pass

wip

removed npm-debug from git
2018-03-02 17:14:18 +00:00
Joe Green
adaf742a7b Add a 1 second delay to the smoke tests (#81)
* Add a 1 second delay to the smoke tests

Fixes a race condition where smoke tests exit before container can be attached to.

See here for more info: https://github.com/overleaf/sharelatex/issues/274

* give the smoke tests additional work to do

* escape slashes
2017-12-05 16:51:59 +00:00
Brian Gough
f1c59150b7 exit if mock server fails to start 2017-10-20 15:16:35 +01:00
Brian Gough
e209c48bd9 simplify tikzexternalize checks 2017-09-29 17:00:53 +01:00
Brian Gough
ce51cc673f Merge branch 'bg-lock-compiles' 2017-09-28 13:16:29 +01:00
Joe Green
4ff6cd3006 Jg jenkinsfile cleanup (#75)
* Update Jenkinsfile

make sure we don't ship unneeded build files

* Update ExampleDocumentTests.coffee

* use node 6.11.2 in jenkins file
2017-09-28 11:50:33 +01:00
Brian Gough
2a23082c4e remove stat test for missing files 2017-09-26 09:48:09 +01:00
Brian Gough
8685b774ee fix unit tests for use of fs-extra 2017-09-25 15:28:31 +01:00
Brian Gough
7f0e6f3eec lock compile directory 2017-09-22 16:19:33 +01:00
Brian Gough
b03271edee unit tests for ResourceStateManager 2017-09-15 13:42:57 +01:00
Brian Gough
0d613a6480 Merge pull request #71 from sharelatex/bg-merge-state-and-resource-list-files
merge state and resource list files
2017-09-11 08:54:30 +01:00
Joe Green
41e442d403 Add jenkinsfile (#72)
* create Jenkinsfile

* allow textlive image to be set with env vars

* log error message in test

* use sandboxed compiles variables

* Add SANDBOXED_COMPILES_HOST_DIR var to test config

* add SIBLING_CONTAINER_USER env var
2017-09-08 14:06:04 +01:00
Brian Gough
0a242bac3c rename saveProjectStateHash to saveProjectState 2017-09-08 13:56:40 +01:00
Brian Gough
66431fc2b8 log any missing files 2017-09-07 16:54:09 +01:00
Brian Gough
3d1c3a1d27 combine the resource state and resource list
to prevent them getting out of sync
2017-09-07 13:52:34 +01:00
Brian Gough
a84c884fc9 splice state management into ResourceStateManager 2017-08-18 10:22:17 +01:00
Brian Gough
d614af2860 finish unit test for incremental update 2017-08-18 09:41:43 +01:00
Brian Gough
d3da4e1d3f ResourceWriter unit tests (wip) 2017-08-17 16:59:37 +01:00
Brian Gough
c7a9487216 test syncType in RequestParser 2017-08-17 15:57:05 +01:00
Brian Gough
8415ea2f71 store the resource list in a file 2017-08-17 14:53:35 +01:00
Brian Gough
c0ed71f65c fix unit tests 2017-08-09 15:22:44 +01:00
Brian Gough
567a89350b fix broken unit tests 2017-08-07 15:00:16 +01:00
Brian Gough
d43357e8c8 stub out unwanted dependency in unit tests 2017-07-18 11:30:22 +01:00
Brian Gough
fd5b557dde fix exception for empty content in TikzManager 2017-07-18 11:29:59 +01:00
Brian Gough
4a4f3bb24c update acceptance test images for texlive 2017 2017-07-13 13:15:51 +01:00
Brian Gough
0c7a89dfa5 update acceptance tests settings to 2017 image 2017-07-12 16:59:33 +01:00
Shane Kilkelly
65eaf0ad10 Mock out logger in tests 2017-06-20 08:25:50 +01:00
Brian Gough
42fa852b76 check file exists before running synctex 2017-05-24 10:09:43 +01:00
Brian Gough
f7c3565281 use pdfinfo on output to ensure pdfs are optimised
needed to check that qpdf runs correctly inside the docker container
2017-04-07 11:11:27 +01:00
Brian Gough
7e58bfd752 check if file is optimised before running qpdf 2017-04-04 16:50:06 +01:00
Brian Gough
4e34fa2fa6 Merge pull request #53 from sharelatex/bg-sanitise-paths
additional check for valid rootResource
2017-03-21 13:39:27 +00:00
Brian Gough
dd35c5d88b check for \tikzexternalize directly
instead of \usepackage{tikz} and \usepackage{pgf}
2017-03-21 11:36:08 +00:00
Brian Gough
1273a05ad4 fix path match 2017-03-21 11:30:32 +00:00
Brian Gough
54bdc8fed0 create separate function for path checking 2017-03-21 11:29:37 +00:00
Brian Gough
3bd919b3eb support for tikz externalize
make copy of main file as output.tex for tikz externalize
2017-03-20 10:55:28 +00:00
Brian Gough
4806da00a4 additional check for valid rootResource 2017-03-20 10:03:48 +00:00
Brian Gough
a602629406 update xelatex acceptance test pdf 2017-03-08 11:49:21 +00:00
Brian Gough
d09cbfaa8d improve debugging of failed acceptance tests
use the example name in the output filename
2017-03-08 11:49:12 +00:00
Brian Gough
d123f8eb64 include otf extension in fontawesome test 2017-03-08 11:25:25 +00:00
Shane Kilkelly
533804c55b Don't compile acceptance test files during test run 2017-03-06 14:43:14 +00:00
Brian Gough
1a4fca08eb fix acceptance test config file for latex prefix
latex command prefix was in wrong scope
2017-02-21 09:37:05 +00:00
Brian Gough
61fb90c6aa add fontawesome acceptance test for xelatex 2017-02-21 09:37:05 +00:00
Brian Gough
1a7d8477a3 update acceptance tests for reversion to dvipdf 2017-02-13 13:42:44 +00:00
Brian Gough
29d36399a2 fix #! in test script 2017-02-09 15:38:25 +00:00
Brian Gough
83dd366eb4 show debug info for acceptance tests 2017-02-09 14:17:38 +00:00
Brian Gough
11e4d01e1e update acceptance test output for fontawesome 2017-02-07 11:51:21 +00:00
Brian Gough
42d20cede0 added fontawesome acceptance test 2017-02-07 10:00:41 +00:00
Brian Gough
58bb705555 fix lualatex require 2017-02-07 08:59:45 +00:00
Brian Gough
83a06b1fe1 add luatex85 package to tikz feynman test 2017-02-07 08:49:19 +00:00
Brian Gough
91fa3364f7 added acceptance test for tikz-feynman 2017-02-07 08:12:47 +00:00
Brian Gough
8b22b6c650 update knitr_utf acceptance test output
needs to include table of contents from multiple latexmk runs
2017-02-06 16:27:47 +00:00
Brian Gough
3acf15de5b add knitr utf8 acceptance test 2017-02-03 15:38:06 +00:00
Brian Gough
491528f5a5 add acceptance test for hebrew 2017-02-03 15:16:47 +00:00
Brian Gough
3434f365bb update acceptance test image for lualatex
small pixel-level change in output
2017-01-31 16:04:59 +00:00
Brian Gough
c031ec7a2e increase debugging in acceptance tests 2017-01-31 10:47:49 +00:00
Brian Gough
c83102c665 add debugging to acceptance tests 2017-01-31 10:40:05 +00:00
Brian Gough
a1503a8791 update feymp test image
minor pixel change in position of labels in texlive 2016
2017-01-31 10:21:00 +00:00
Brian Gough
2c26c99509 update asymptote pdf to a4 size for texlive 2016 2017-01-31 09:53:36 +00:00
Brian Gough
b04713b234 try output.pdf generated with texlive 2016 2017-01-30 15:37:26 +00:00
Brian Gough
00d8bc78c3 update latex_compiler test pdf 2017-01-27 12:32:14 +00:00
Brian Gough
354a88e67a specify papersize explicitly in latex test 2017-01-27 12:21:57 +00:00
Brian Gough
a802620d11 log acceptance test server output to file 2017-01-26 12:20:41 +00:00
Brian Gough
07e536677c try running user as jenkins 2017-01-26 12:06:38 +00:00
Brian Gough
5a6f54e6b2 update image for docker tests 2017-01-25 14:12:19 +00:00
Brian Gough
b4afaf9ea8 use local docker image for clsi test 2017-01-25 14:09:44 +00:00
Brian Gough
9461b28707 run tests outside container, add settings file 2017-01-25 14:08:39 +00:00
Brian Gough
0f92ef104a added docker script for acceptance tests 2017-01-24 12:18:30 +00:00
Brian Gough
08dc3bd744 fix acceptance tests 2017-01-24 11:07:54 +00:00
Shane Kilkelly
34f47178fa Increase memory limit to 64mb 2016-09-28 11:02:58 +01:00
Shane Kilkelly
2bedd08ff9 Add test for new ulimit options 2016-09-23 15:34:29 +01:00
James Allen
638359e052 Don't delete knitr cache files 2016-09-22 14:14:29 +01:00
James Allen
4c04a5df3f Sanitize resource path along with rootResourcePath 2016-09-21 15:09:01 +01:00
Brian Gough
56429178df only run chktex on .tex files, not .Rtex files
the .tex files produced from knitr have macros which confuse chktex
2016-09-12 16:29:36 +01:00
Brian Gough
a26971ba2e update tests 2016-08-11 10:31:37 +01:00
Brian Gough
3135ff2842 add support for passing additional environment parameters to command runner
includes an example of passing environment variables to chktex
2016-07-26 12:30:29 +01:00
Brian Gough
fb12d04282 Merge branch 'per-user-containers-part-2'
Conflicts:
	app/coffee/CompileController.coffee
2016-06-13 09:33:41 +01:00
Brian Gough
feeed9faaf Merge pull request #39 from sharelatex/per-user-containers-part-1
Per user containers part 1
2016-06-09 15:17:35 +01:00
Henry Oswald
989c178546 use process id so link process to smoke test 2016-06-07 14:47:51 +01:00
Henry Oswald
f0dc5d6f86 add random string to smoke tests to avoid collision 2016-06-07 14:39:01 +01:00
Brian Gough
5367bc22e5 add per-user routes for clearing cache and extend expiry methods
this adds separate functionality for clearing the cache (assets and
database) and the project compile directory for a specific user
2016-06-02 15:32:33 +01:00
Brian Gough
df641549c4 add per-user routes and methods 2016-06-02 15:32:31 +01:00
Brian Gough
1462e17f0c put the build id in the output file urls
the url attribute will now give the preferred location for accessing
the output file, without the url having to be constructed by the web
client
2016-06-02 15:30:50 +01:00
Brian Gough
bd22a6e02d put the build id in the output file urls
the url attribute will now give the preferred location for accessing
the output file, without the url having to be constructed by the web
client
2016-06-02 15:29:56 +01:00
Henry Oswald
5ed6ef571f added logger.info to test setup 2016-05-24 14:12:02 +01:00
Brian Gough
e286aede4e return the file path in the output file list for easy lookup 2016-05-19 16:38:18 +01:00
Brian Gough
99c6b746f8 check directory exists before attempting to clear it 2016-03-31 11:59:17 +01:00
Brian Gough
26e94f2549 always create project directory when syncing resources to disk
avoids errors when project is empty
2016-03-31 11:59:17 +01:00
James Allen
320e225700 Send .svg files as text/plain to prevent executable JS if they are loaded as SVG in the browser 2016-03-10 09:32:32 +00:00
James Allen
0f55ce18ac Inject [draft] option to documentclass if draft option is passed 2016-02-02 14:26:14 +00:00