mirror of
https://github.com/James-Yu/LaTeX-Workshop.git
synced 2024-10-04 23:27:20 +03:00
Use cached log for tests
This commit is contained in:
parent
7317024157
commit
7c4256aa15
@ -6,6 +6,17 @@ const STATUS_ITEM = vscode.window.createStatusBarItem(vscode.StatusBarAlignment.
|
||||
const PLACEHOLDERS: {[placeholder: string]: string} = {}
|
||||
|
||||
COMPILER_PANEL.append('Ready')
|
||||
let CACHED_EXTLOG: string[] = []
|
||||
let CACHED_COMPILER: string[] = []
|
||||
|
||||
export function resetCachedLog() {
|
||||
CACHED_EXTLOG = []
|
||||
CACHED_COMPILER = []
|
||||
}
|
||||
|
||||
export function getCachedLog() {
|
||||
return {CACHED_EXTLOG, CACHED_COMPILER}
|
||||
}
|
||||
|
||||
export function getLogger(...tags: string[]) {
|
||||
const tagString = tags.map(tag => `[${tag}]`).join('')
|
||||
@ -44,9 +55,13 @@ function logTagless(message: string) {
|
||||
}
|
||||
const placeholder = `%WS${Object.keys(PLACEHOLDERS).length + 1}%`
|
||||
PLACEHOLDERS[folder.uri.fsPath] = placeholder
|
||||
LOG_PANEL.appendLine(`[${timestamp}][Logger] New log placeholder ${placeholder} registered for ${folder.uri.fsPath} .`)
|
||||
const log = `[${timestamp}][Logger] New log placeholder ${placeholder} registered for ${folder.uri.fsPath} .`
|
||||
LOG_PANEL.appendLine(log)
|
||||
CACHED_EXTLOG.push(log)
|
||||
})
|
||||
LOG_PANEL.appendLine(`[${timestamp}]${applyPlaceholders(message)}`)
|
||||
const log = `[${timestamp}]${applyPlaceholders(message)}`
|
||||
LOG_PANEL.appendLine(log)
|
||||
CACHED_EXTLOG.push(log)
|
||||
}
|
||||
|
||||
function applyPlaceholders(message: string) {
|
||||
@ -77,6 +92,7 @@ function logErrorTagless(message: string, error: unknown, stderr?: string) {
|
||||
|
||||
function logCompiler(message: string) {
|
||||
COMPILER_PANEL.append(message)
|
||||
CACHED_COMPILER.push(message)
|
||||
}
|
||||
|
||||
function initializeStatusBarItem() {
|
||||
|
@ -4,6 +4,7 @@ import rimraf from 'rimraf'
|
||||
import * as lw from '../../src/lw'
|
||||
import * as test from './utils'
|
||||
import { BuildDone } from '../../src/components/eventbus'
|
||||
import { resetCachedLog } from '../../src/components/logger'
|
||||
|
||||
suite('Build TeX files test suite', () => {
|
||||
|
||||
@ -17,6 +18,7 @@ suite('Build TeX files test suite', () => {
|
||||
|
||||
setup(async () => {
|
||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||
resetCachedLog()
|
||||
})
|
||||
|
||||
teardown(async () => {
|
||||
@ -130,7 +132,7 @@ suite('Build TeX files test suite', () => {
|
||||
await test.assert.build(fixture, 'main.tex', 'main.pdf')
|
||||
})
|
||||
|
||||
test.run(suiteName, fixtureName, 'build a subfile when main.tex opened', async () => {
|
||||
test.only(suiteName, fixtureName, 'build a subfile when main.tex opened', async () => {
|
||||
await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.doNotPrompt', true)
|
||||
await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.useSubFile', true)
|
||||
await test.load(fixture, [
|
||||
|
@ -4,6 +4,7 @@ import rimraf from 'rimraf'
|
||||
import * as lw from '../../src/lw'
|
||||
import * as test from './utils'
|
||||
import { FileWatched } from '../../src/components/eventbus'
|
||||
import { resetCachedLog } from '../../src/components/logger'
|
||||
|
||||
suite('Auto-build test suite', () => {
|
||||
|
||||
@ -19,6 +20,7 @@ suite('Auto-build test suite', () => {
|
||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||
await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.interval', 250)
|
||||
await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'onFileChange')
|
||||
resetCachedLog()
|
||||
})
|
||||
|
||||
teardown(async () => {
|
||||
|
@ -4,6 +4,7 @@ import rimraf from 'rimraf'
|
||||
import * as assert from 'assert'
|
||||
import * as lw from '../../src/lw'
|
||||
import * as test from './utils'
|
||||
import { resetCachedLog } from '../../src/components/logger'
|
||||
|
||||
suite('Find root file test suite', () => {
|
||||
|
||||
@ -17,6 +18,7 @@ suite('Find root file test suite', () => {
|
||||
|
||||
setup(async () => {
|
||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||
resetCachedLog()
|
||||
})
|
||||
|
||||
teardown(async () => {
|
||||
|
@ -11,6 +11,7 @@ import { CmdType } from '../../src/providers/completer/command'
|
||||
import { PkgType } from '../../src/providers/completion'
|
||||
import { isTriggerSuggestNeeded } from '../../src/providers/completer/commandlib/commandfinder'
|
||||
import { FileParsed } from '../../src/components/eventbus'
|
||||
import { resetCachedLog } from '../../src/components/logger'
|
||||
|
||||
function assertKeys(keys: string[], expected: string[] = [], message: string): void {
|
||||
assert.ok(
|
||||
@ -31,6 +32,7 @@ suite('Intellisense test suite', () => {
|
||||
|
||||
setup(async () => {
|
||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||
resetCachedLog()
|
||||
})
|
||||
|
||||
teardown(async () => {
|
||||
|
@ -4,6 +4,7 @@ import rimraf from 'rimraf'
|
||||
import * as lw from '../../src/lw'
|
||||
import * as test from './utils'
|
||||
import { BuildDone } from '../../src/components/eventbus'
|
||||
import { resetCachedLog } from '../../src/components/logger'
|
||||
|
||||
suite('PDF viewer test suite', () => {
|
||||
|
||||
@ -18,6 +19,7 @@ suite('PDF viewer test suite', () => {
|
||||
setup(async () => {
|
||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||
await vscode.workspace.getConfiguration().update('latex-workshop.view.pdf.viewer', 'tab')
|
||||
resetCachedLog()
|
||||
})
|
||||
|
||||
teardown(async () => {
|
||||
|
@ -5,6 +5,7 @@ import rimraf from 'rimraf'
|
||||
import * as lw from '../../src/lw'
|
||||
import * as test from './utils'
|
||||
import { SectionNodeProvider } from '../../src/providers/structure'
|
||||
import { resetCachedLog } from '../../src/components/logger'
|
||||
|
||||
async function loadTestFiles(fixture: string) {
|
||||
await test.load(fixture, [
|
||||
@ -27,6 +28,7 @@ suite('Document structure test suite', () => {
|
||||
|
||||
setup(async () => {
|
||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||
resetCachedLog()
|
||||
})
|
||||
|
||||
teardown(async () => {
|
||||
|
@ -7,6 +7,7 @@ import * as test from './utils'
|
||||
import { TextDocumentLike } from '../../src/providers/preview/mathpreviewlib/textdocumentlike'
|
||||
import { TeXMathEnvFinder } from '../../src/providers/preview/mathpreviewlib/texmathenvfinder'
|
||||
import { CursorRenderer } from '../../src/providers/preview/mathpreviewlib/cursorrenderer'
|
||||
import { resetCachedLog } from '../../src/components/logger'
|
||||
|
||||
suite('Math preview test suite', () => {
|
||||
|
||||
@ -20,6 +21,7 @@ suite('Math preview test suite', () => {
|
||||
|
||||
setup(async () => {
|
||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||
resetCachedLog()
|
||||
})
|
||||
|
||||
teardown(async () => {
|
||||
|
@ -6,6 +6,7 @@ import * as lw from '../../src/lw'
|
||||
import * as test from './utils'
|
||||
import { ChkTeX } from '../../src/components/linterlib/chktex'
|
||||
import { LaCheck } from '../../src/components/linterlib/lacheck'
|
||||
import { resetCachedLog } from '../../src/components/logger'
|
||||
|
||||
suite('Linter test suite', () => {
|
||||
|
||||
@ -19,6 +20,7 @@ suite('Linter test suite', () => {
|
||||
|
||||
setup(async () => {
|
||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||
resetCachedLog()
|
||||
})
|
||||
|
||||
teardown(async () => {
|
||||
|
@ -4,6 +4,7 @@ import * as assert from 'assert'
|
||||
import rimraf from 'rimraf'
|
||||
import * as lw from '../../src/lw'
|
||||
import * as test from './utils'
|
||||
import { resetCachedLog } from '../../src/components/logger'
|
||||
|
||||
suite('Formatter test suite', () => {
|
||||
|
||||
@ -17,6 +18,7 @@ suite('Formatter test suite', () => {
|
||||
|
||||
setup(async () => {
|
||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||
resetCachedLog()
|
||||
})
|
||||
|
||||
teardown(async () => {
|
||||
|
@ -4,6 +4,7 @@ import rimraf from 'rimraf'
|
||||
import * as assert from 'assert'
|
||||
import * as lw from '../../src/lw'
|
||||
import * as test from './utils'
|
||||
import { resetCachedLog } from '../../src/components/logger'
|
||||
|
||||
suite('Multi-root workspace test suite', () => {
|
||||
|
||||
@ -18,6 +19,7 @@ suite('Multi-root workspace test suite', () => {
|
||||
setup(async () => {
|
||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||
await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.interval', 250)
|
||||
resetCachedLog()
|
||||
})
|
||||
|
||||
teardown(async () => {
|
||||
|
@ -7,6 +7,7 @@ import { ok, strictEqual } from 'assert'
|
||||
import * as lw from '../../src/lw'
|
||||
import { BuildDone, FileParsed, FileWatched, RootFileSearched, ViewerPageLoaded, ViewerStatusChanged } from '../../src/components/eventbus'
|
||||
import type { EventName } from '../../src/components/eventbus'
|
||||
import { getCachedLog } from '../../src/components/logger'
|
||||
|
||||
let testCounter = 0
|
||||
|
||||
@ -43,7 +44,7 @@ export function run(suiteName: string, fixtureName: string, testName: string, cb
|
||||
try {
|
||||
await cb()
|
||||
} catch (error) {
|
||||
await log(counterString)
|
||||
log(fixtureName, testName, counterString)
|
||||
throw error
|
||||
}
|
||||
}).timeout(timeout || 15000)
|
||||
@ -53,22 +54,14 @@ export function sleep(ms: number) {
|
||||
return new Promise(resolve => setTimeout(resolve, ms))
|
||||
}
|
||||
|
||||
async function log(counter: string) {
|
||||
await vscode.commands.executeCommand('workbench.action.closeAllEditors')
|
||||
await sleep(500)
|
||||
await vscode.commands.executeCommand('workbench.action.output.toggleOutput')
|
||||
await sleep(500)
|
||||
await vscode.commands.executeCommand('latex-workshop.log')
|
||||
await sleep(500)
|
||||
const extensionMessage = vscode.window.activeTextEditor?.document.getText()
|
||||
await vscode.commands.executeCommand('latex-workshop.compilerlog')
|
||||
await sleep(500)
|
||||
const compilerMessage = vscode.window.activeTextEditor?.document.getText()
|
||||
|
||||
function log(fixtureName: string, testName: string, counter: string) {
|
||||
const cachedLog = getCachedLog()
|
||||
const logFolder = path.resolve(__dirname, '../../../test/log')
|
||||
fs.mkdirSync(logFolder, {recursive: true})
|
||||
fs.writeFileSync(path.resolve(logFolder, `${counter}.extension.log`), extensionMessage || '')
|
||||
fs.writeFileSync(path.resolve(logFolder, `${counter}.compiler.log`), compilerMessage || '')
|
||||
fs.writeFileSync(path.resolve(logFolder, `${fixtureName}-${counter}.log`),
|
||||
testName + '\n\n' + new Array(80).fill('=') + '\n\n' +
|
||||
cachedLog.CACHED_EXTLOG + '\n\n' + new Array(80).fill('=') + '\n\n' +
|
||||
cachedLog.CACHED_COMPILER)
|
||||
}
|
||||
|
||||
export function write(fixture: string, fileName: string, ...contents: string[]) {
|
||||
|
Loading…
Reference in New Issue
Block a user