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} = {}
|
const PLACEHOLDERS: {[placeholder: string]: string} = {}
|
||||||
|
|
||||||
COMPILER_PANEL.append('Ready')
|
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[]) {
|
export function getLogger(...tags: string[]) {
|
||||||
const tagString = tags.map(tag => `[${tag}]`).join('')
|
const tagString = tags.map(tag => `[${tag}]`).join('')
|
||||||
@ -44,9 +55,13 @@ function logTagless(message: string) {
|
|||||||
}
|
}
|
||||||
const placeholder = `%WS${Object.keys(PLACEHOLDERS).length + 1}%`
|
const placeholder = `%WS${Object.keys(PLACEHOLDERS).length + 1}%`
|
||||||
PLACEHOLDERS[folder.uri.fsPath] = placeholder
|
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) {
|
function applyPlaceholders(message: string) {
|
||||||
@ -77,6 +92,7 @@ function logErrorTagless(message: string, error: unknown, stderr?: string) {
|
|||||||
|
|
||||||
function logCompiler(message: string) {
|
function logCompiler(message: string) {
|
||||||
COMPILER_PANEL.append(message)
|
COMPILER_PANEL.append(message)
|
||||||
|
CACHED_COMPILER.push(message)
|
||||||
}
|
}
|
||||||
|
|
||||||
function initializeStatusBarItem() {
|
function initializeStatusBarItem() {
|
||||||
|
@ -4,6 +4,7 @@ import rimraf from 'rimraf'
|
|||||||
import * as lw from '../../src/lw'
|
import * as lw from '../../src/lw'
|
||||||
import * as test from './utils'
|
import * as test from './utils'
|
||||||
import { BuildDone } from '../../src/components/eventbus'
|
import { BuildDone } from '../../src/components/eventbus'
|
||||||
|
import { resetCachedLog } from '../../src/components/logger'
|
||||||
|
|
||||||
suite('Build TeX files test suite', () => {
|
suite('Build TeX files test suite', () => {
|
||||||
|
|
||||||
@ -17,6 +18,7 @@ suite('Build TeX files test suite', () => {
|
|||||||
|
|
||||||
setup(async () => {
|
setup(async () => {
|
||||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||||
|
resetCachedLog()
|
||||||
})
|
})
|
||||||
|
|
||||||
teardown(async () => {
|
teardown(async () => {
|
||||||
@ -130,7 +132,7 @@ suite('Build TeX files test suite', () => {
|
|||||||
await test.assert.build(fixture, 'main.tex', 'main.pdf')
|
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.doNotPrompt', true)
|
||||||
await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.useSubFile', true)
|
await vscode.workspace.getConfiguration('latex-workshop').update('latex.rootFile.useSubFile', true)
|
||||||
await test.load(fixture, [
|
await test.load(fixture, [
|
||||||
|
@ -4,6 +4,7 @@ import rimraf from 'rimraf'
|
|||||||
import * as lw from '../../src/lw'
|
import * as lw from '../../src/lw'
|
||||||
import * as test from './utils'
|
import * as test from './utils'
|
||||||
import { FileWatched } from '../../src/components/eventbus'
|
import { FileWatched } from '../../src/components/eventbus'
|
||||||
|
import { resetCachedLog } from '../../src/components/logger'
|
||||||
|
|
||||||
suite('Auto-build test suite', () => {
|
suite('Auto-build test suite', () => {
|
||||||
|
|
||||||
@ -19,6 +20,7 @@ suite('Auto-build test suite', () => {
|
|||||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
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.interval', 250)
|
||||||
await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'onFileChange')
|
await vscode.workspace.getConfiguration('latex-workshop').update('latex.autoBuild.run', 'onFileChange')
|
||||||
|
resetCachedLog()
|
||||||
})
|
})
|
||||||
|
|
||||||
teardown(async () => {
|
teardown(async () => {
|
||||||
|
@ -4,6 +4,7 @@ import rimraf from 'rimraf'
|
|||||||
import * as assert from 'assert'
|
import * as assert from 'assert'
|
||||||
import * as lw from '../../src/lw'
|
import * as lw from '../../src/lw'
|
||||||
import * as test from './utils'
|
import * as test from './utils'
|
||||||
|
import { resetCachedLog } from '../../src/components/logger'
|
||||||
|
|
||||||
suite('Find root file test suite', () => {
|
suite('Find root file test suite', () => {
|
||||||
|
|
||||||
@ -17,6 +18,7 @@ suite('Find root file test suite', () => {
|
|||||||
|
|
||||||
setup(async () => {
|
setup(async () => {
|
||||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||||
|
resetCachedLog()
|
||||||
})
|
})
|
||||||
|
|
||||||
teardown(async () => {
|
teardown(async () => {
|
||||||
|
@ -11,6 +11,7 @@ import { CmdType } from '../../src/providers/completer/command'
|
|||||||
import { PkgType } from '../../src/providers/completion'
|
import { PkgType } from '../../src/providers/completion'
|
||||||
import { isTriggerSuggestNeeded } from '../../src/providers/completer/commandlib/commandfinder'
|
import { isTriggerSuggestNeeded } from '../../src/providers/completer/commandlib/commandfinder'
|
||||||
import { FileParsed } from '../../src/components/eventbus'
|
import { FileParsed } from '../../src/components/eventbus'
|
||||||
|
import { resetCachedLog } from '../../src/components/logger'
|
||||||
|
|
||||||
function assertKeys(keys: string[], expected: string[] = [], message: string): void {
|
function assertKeys(keys: string[], expected: string[] = [], message: string): void {
|
||||||
assert.ok(
|
assert.ok(
|
||||||
@ -31,6 +32,7 @@ suite('Intellisense test suite', () => {
|
|||||||
|
|
||||||
setup(async () => {
|
setup(async () => {
|
||||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||||
|
resetCachedLog()
|
||||||
})
|
})
|
||||||
|
|
||||||
teardown(async () => {
|
teardown(async () => {
|
||||||
|
@ -4,6 +4,7 @@ import rimraf from 'rimraf'
|
|||||||
import * as lw from '../../src/lw'
|
import * as lw from '../../src/lw'
|
||||||
import * as test from './utils'
|
import * as test from './utils'
|
||||||
import { BuildDone } from '../../src/components/eventbus'
|
import { BuildDone } from '../../src/components/eventbus'
|
||||||
|
import { resetCachedLog } from '../../src/components/logger'
|
||||||
|
|
||||||
suite('PDF viewer test suite', () => {
|
suite('PDF viewer test suite', () => {
|
||||||
|
|
||||||
@ -18,6 +19,7 @@ suite('PDF viewer test suite', () => {
|
|||||||
setup(async () => {
|
setup(async () => {
|
||||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||||
await vscode.workspace.getConfiguration().update('latex-workshop.view.pdf.viewer', 'tab')
|
await vscode.workspace.getConfiguration().update('latex-workshop.view.pdf.viewer', 'tab')
|
||||||
|
resetCachedLog()
|
||||||
})
|
})
|
||||||
|
|
||||||
teardown(async () => {
|
teardown(async () => {
|
||||||
|
@ -5,6 +5,7 @@ import rimraf from 'rimraf'
|
|||||||
import * as lw from '../../src/lw'
|
import * as lw from '../../src/lw'
|
||||||
import * as test from './utils'
|
import * as test from './utils'
|
||||||
import { SectionNodeProvider } from '../../src/providers/structure'
|
import { SectionNodeProvider } from '../../src/providers/structure'
|
||||||
|
import { resetCachedLog } from '../../src/components/logger'
|
||||||
|
|
||||||
async function loadTestFiles(fixture: string) {
|
async function loadTestFiles(fixture: string) {
|
||||||
await test.load(fixture, [
|
await test.load(fixture, [
|
||||||
@ -27,6 +28,7 @@ suite('Document structure test suite', () => {
|
|||||||
|
|
||||||
setup(async () => {
|
setup(async () => {
|
||||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||||
|
resetCachedLog()
|
||||||
})
|
})
|
||||||
|
|
||||||
teardown(async () => {
|
teardown(async () => {
|
||||||
|
@ -7,6 +7,7 @@ import * as test from './utils'
|
|||||||
import { TextDocumentLike } from '../../src/providers/preview/mathpreviewlib/textdocumentlike'
|
import { TextDocumentLike } from '../../src/providers/preview/mathpreviewlib/textdocumentlike'
|
||||||
import { TeXMathEnvFinder } from '../../src/providers/preview/mathpreviewlib/texmathenvfinder'
|
import { TeXMathEnvFinder } from '../../src/providers/preview/mathpreviewlib/texmathenvfinder'
|
||||||
import { CursorRenderer } from '../../src/providers/preview/mathpreviewlib/cursorrenderer'
|
import { CursorRenderer } from '../../src/providers/preview/mathpreviewlib/cursorrenderer'
|
||||||
|
import { resetCachedLog } from '../../src/components/logger'
|
||||||
|
|
||||||
suite('Math preview test suite', () => {
|
suite('Math preview test suite', () => {
|
||||||
|
|
||||||
@ -20,6 +21,7 @@ suite('Math preview test suite', () => {
|
|||||||
|
|
||||||
setup(async () => {
|
setup(async () => {
|
||||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||||
|
resetCachedLog()
|
||||||
})
|
})
|
||||||
|
|
||||||
teardown(async () => {
|
teardown(async () => {
|
||||||
|
@ -6,6 +6,7 @@ import * as lw from '../../src/lw'
|
|||||||
import * as test from './utils'
|
import * as test from './utils'
|
||||||
import { ChkTeX } from '../../src/components/linterlib/chktex'
|
import { ChkTeX } from '../../src/components/linterlib/chktex'
|
||||||
import { LaCheck } from '../../src/components/linterlib/lacheck'
|
import { LaCheck } from '../../src/components/linterlib/lacheck'
|
||||||
|
import { resetCachedLog } from '../../src/components/logger'
|
||||||
|
|
||||||
suite('Linter test suite', () => {
|
suite('Linter test suite', () => {
|
||||||
|
|
||||||
@ -19,6 +20,7 @@ suite('Linter test suite', () => {
|
|||||||
|
|
||||||
setup(async () => {
|
setup(async () => {
|
||||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||||
|
resetCachedLog()
|
||||||
})
|
})
|
||||||
|
|
||||||
teardown(async () => {
|
teardown(async () => {
|
||||||
|
@ -4,6 +4,7 @@ import * as assert from 'assert'
|
|||||||
import rimraf from 'rimraf'
|
import rimraf from 'rimraf'
|
||||||
import * as lw from '../../src/lw'
|
import * as lw from '../../src/lw'
|
||||||
import * as test from './utils'
|
import * as test from './utils'
|
||||||
|
import { resetCachedLog } from '../../src/components/logger'
|
||||||
|
|
||||||
suite('Formatter test suite', () => {
|
suite('Formatter test suite', () => {
|
||||||
|
|
||||||
@ -17,6 +18,7 @@ suite('Formatter test suite', () => {
|
|||||||
|
|
||||||
setup(async () => {
|
setup(async () => {
|
||||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
await vscode.commands.executeCommand('latex-workshop.activate')
|
||||||
|
resetCachedLog()
|
||||||
})
|
})
|
||||||
|
|
||||||
teardown(async () => {
|
teardown(async () => {
|
||||||
|
@ -4,6 +4,7 @@ import rimraf from 'rimraf'
|
|||||||
import * as assert from 'assert'
|
import * as assert from 'assert'
|
||||||
import * as lw from '../../src/lw'
|
import * as lw from '../../src/lw'
|
||||||
import * as test from './utils'
|
import * as test from './utils'
|
||||||
|
import { resetCachedLog } from '../../src/components/logger'
|
||||||
|
|
||||||
suite('Multi-root workspace test suite', () => {
|
suite('Multi-root workspace test suite', () => {
|
||||||
|
|
||||||
@ -18,6 +19,7 @@ suite('Multi-root workspace test suite', () => {
|
|||||||
setup(async () => {
|
setup(async () => {
|
||||||
await vscode.commands.executeCommand('latex-workshop.activate')
|
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.interval', 250)
|
||||||
|
resetCachedLog()
|
||||||
})
|
})
|
||||||
|
|
||||||
teardown(async () => {
|
teardown(async () => {
|
||||||
|
@ -7,6 +7,7 @@ import { ok, strictEqual } from 'assert'
|
|||||||
import * as lw from '../../src/lw'
|
import * as lw from '../../src/lw'
|
||||||
import { BuildDone, FileParsed, FileWatched, RootFileSearched, ViewerPageLoaded, ViewerStatusChanged } from '../../src/components/eventbus'
|
import { BuildDone, FileParsed, FileWatched, RootFileSearched, ViewerPageLoaded, ViewerStatusChanged } from '../../src/components/eventbus'
|
||||||
import type { EventName } from '../../src/components/eventbus'
|
import type { EventName } from '../../src/components/eventbus'
|
||||||
|
import { getCachedLog } from '../../src/components/logger'
|
||||||
|
|
||||||
let testCounter = 0
|
let testCounter = 0
|
||||||
|
|
||||||
@ -43,7 +44,7 @@ export function run(suiteName: string, fixtureName: string, testName: string, cb
|
|||||||
try {
|
try {
|
||||||
await cb()
|
await cb()
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
await log(counterString)
|
log(fixtureName, testName, counterString)
|
||||||
throw error
|
throw error
|
||||||
}
|
}
|
||||||
}).timeout(timeout || 15000)
|
}).timeout(timeout || 15000)
|
||||||
@ -53,22 +54,14 @@ export function sleep(ms: number) {
|
|||||||
return new Promise(resolve => setTimeout(resolve, ms))
|
return new Promise(resolve => setTimeout(resolve, ms))
|
||||||
}
|
}
|
||||||
|
|
||||||
async function log(counter: string) {
|
function log(fixtureName: string, testName: string, counter: string) {
|
||||||
await vscode.commands.executeCommand('workbench.action.closeAllEditors')
|
const cachedLog = getCachedLog()
|
||||||
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()
|
|
||||||
|
|
||||||
const logFolder = path.resolve(__dirname, '../../../test/log')
|
const logFolder = path.resolve(__dirname, '../../../test/log')
|
||||||
fs.mkdirSync(logFolder, {recursive: true})
|
fs.mkdirSync(logFolder, {recursive: true})
|
||||||
fs.writeFileSync(path.resolve(logFolder, `${counter}.extension.log`), extensionMessage || '')
|
fs.writeFileSync(path.resolve(logFolder, `${fixtureName}-${counter}.log`),
|
||||||
fs.writeFileSync(path.resolve(logFolder, `${counter}.compiler.log`), compilerMessage || '')
|
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[]) {
|
export function write(fixture: string, fileName: string, ...contents: string[]) {
|
||||||
|
Loading…
Reference in New Issue
Block a user