diff --git a/Makefile b/Makefile index e8f6ed91..76ea6b8c 100644 --- a/Makefile +++ b/Makefile @@ -35,7 +35,7 @@ submodules: buildtsc: submodules buildgrammars npm run esbuild-clean - $(TSC) tsconfig.json + npm run tsbuild npm run esbuild prepare: buildtsc diff --git a/package.json b/package.json index ab94bd1c..d789edb6 100644 --- a/package.json +++ b/package.json @@ -68,9 +68,9 @@ }, "scripts": { "build": "make prepare", - "test": "npm run test-node", - "tsbuild": "tsc --build tsconfig.json", - "tslint": "tsc --build -noEmit tsconfig.json", + "test": "npm run tsbuild && npm run test-node", + "tsbuild": "tsc --build tsconfig.json test/tsconfig.json", + "tslint": "tsc --build -noEmit tsconfig.json test/tsconfig.json", "esbuild": "npm run esbuild-worker && npm run esbuild-ui && npm run esbuild-server", "esbuild-clean": "rm -f ./gen/*.*", "esbuild-server": "esbuild src/worker/server/server.ts --platform=node --bundle --sourcemap --target=es2020 --outfile=./gen/server/server.js", diff --git a/test/tsconfig.json b/test/tsconfig.json new file mode 100644 index 00000000..58f3a441 --- /dev/null +++ b/test/tsconfig.json @@ -0,0 +1,10 @@ +{ + "extends": "../tsconfig", + "include": [ + "**/*.ts" + ], + "compilerOptions": { + "outDir": "../gen", + "rootDir": "..", + } +} diff --git a/src/test/testanalysis.ts b/test/unit/testanalysis.ts similarity index 96% rename from src/test/testanalysis.ts rename to test/unit/testanalysis.ts index 576a2262..113bfe18 100644 --- a/src/test/testanalysis.ts +++ b/test/unit/testanalysis.ts @@ -1,7 +1,7 @@ import { describe } from "mocha"; -import { OpcodeMetadata, Platform } from "../common/baseplatform"; -import { CodeAnalyzer_vcs } from "../common/analysis"; -import { MOS6502 } from "../common/cpu/MOS6502"; +import { OpcodeMetadata, Platform } from "../../src/common/baseplatform"; +import { CodeAnalyzer_vcs } from "../../src/common/analysis"; +import { MOS6502 } from "../../src/common/cpu/MOS6502"; import assert from "assert"; class Test6502Platform implements Platform { diff --git a/src/test/testassembler.ts b/test/unit/testassembler.ts similarity index 99% rename from src/test/testassembler.ts rename to test/unit/testassembler.ts index 7d5d4be9..d56afa81 100644 --- a/src/test/testassembler.ts +++ b/test/unit/testassembler.ts @@ -1,6 +1,6 @@ import { describe, it } from "mocha"; import assert from "assert"; -import { Assembler } from "../worker/assembler"; +import { Assembler } from "../../src/worker/assembler"; describe('Assembler', function () { diff --git a/src/test/testecs.ts b/test/unit/testecs.ts similarity index 97% rename from src/test/testecs.ts rename to test/unit/testecs.ts index 0d64ea96..4f12cbd0 100644 --- a/src/test/testecs.ts +++ b/test/unit/testecs.ts @@ -2,9 +2,9 @@ import { spawnSync } from "child_process"; import { existsSync, readdirSync, readFileSync, writeFileSync } from "fs"; import { describe } from "mocha"; -import { Bin, BoxConstraints, Packer } from "../common/ecs/binpack"; -import { ECSCompiler } from "../common/ecs/compiler"; -import { Dialect_CA65, EntityManager, SourceFileExport } from "../common/ecs/ecs"; +import { Bin, BoxConstraints, Packer } from "../../src/common/ecs/binpack"; +import { ECSCompiler } from "../../src/common/ecs/compiler"; +import { Dialect_CA65, EntityManager, SourceFileExport } from "../../src/common/ecs/ecs"; function testCompiler() { let em = new EntityManager(new Dialect_CA65()); // TODO diff --git a/src/test/testelfparser.ts b/test/unit/testelfparser.ts similarity index 97% rename from src/test/testelfparser.ts rename to test/unit/testelfparser.ts index f278c3d3..4f07cbdf 100644 --- a/src/test/testelfparser.ts +++ b/test/unit/testelfparser.ts @@ -21,7 +21,7 @@ */ import assert from "assert"; -import { DWARFParser, ELFParser } from "../common/binutils"; +import { DWARFParser, ELFParser } from "../../src/common/binutils"; describe('test ELFParser', () => { diff --git a/src/test/testlibretro.ts b/test/unit/testlibretro.ts similarity index 90% rename from src/test/testlibretro.ts rename to test/unit/testlibretro.ts index 2f8fd7b3..d8b48279 100644 --- a/src/test/testlibretro.ts +++ b/test/unit/testlibretro.ts @@ -1,6 +1,6 @@ import assert from "assert"; import * as fs from "fs"; -import { LibRetroRunner } from "../common/wasi/libretro"; +import { LibRetroRunner } from "../../src/common/wasi/libretro"; async function loadLibretro() { const wasmdata = fs.readFileSync(`./wasi/stella2014_libretro_2.wasm`); diff --git a/src/test/testutil.ts b/test/unit/testutil.ts similarity index 98% rename from src/test/testutil.ts rename to test/unit/testutil.ts index 4a4d91d6..87230c7f 100644 --- a/src/test/testutil.ts +++ b/test/unit/testutil.ts @@ -1,11 +1,11 @@ import assert from "assert"; import { describe } from "mocha"; -import { EmuHalt } from "../common/emu" -import { lzgmini, isProbablyBinary, hex } from "../common/util"; -import { Tokenizer, TokenType } from "../common/tokenizer"; -import { OPS_6502 } from "../common/cpu/disasm6502"; -import { MOS6502 } from "../common/cpu/MOS6502"; +import { EmuHalt } from "../../src/common/emu" +import { lzgmini, isProbablyBinary, hex } from "../../src/common/util"; +import { Tokenizer, TokenType } from "../../src/common/tokenizer"; +import { OPS_6502 } from "../../src/common/cpu/disasm6502"; +import { MOS6502 } from "../../src/common/cpu/MOS6502"; var NES_CONIO_ROM_LZG = [ 76, 90, 71, 0, 0, 160, 16, 0, 0, 11, 158, 107, 131, 223, 83, 1, 9, 17, 21, 22, 78, 69, 83, 26, 2, 1, 3, 0, 22, 6, 120, 216, diff --git a/src/test/testwasishim.ts b/test/unit/testwasishim.ts similarity index 96% rename from src/test/testwasishim.ts rename to test/unit/testwasishim.ts index 2f3dc01d..088cbcad 100644 --- a/src/test/testwasishim.ts +++ b/test/unit/testwasishim.ts @@ -1,7 +1,7 @@ import assert from "assert"; -import { WASIRunner } from "../common/wasi/wasishim"; +import { WASIRunner } from "../../src/common/wasi/wasishim"; import * as fs from "fs"; -import { loadWASIFilesystemZip, unzipWASIFilesystem } from "../worker/wasiutils"; +import { loadWASIFilesystemZip, unzipWASIFilesystem } from "../../src/worker/wasiutils"; async function loadWASM(filename: string) { const wasmdata = fs.readFileSync(`./src/worker/wasm/${filename}.wasm`);