mirror of
https://github.com/msojocs/wx-compiler.git
synced 2025-07-19 00:00:04 +08:00
feat: test file
This commit is contained in:
parent
ccb51e4c2f
commit
ca9bdccdf5
2
.vscode/settings.json
vendored
2
.vscode/settings.json
vendored
@ -60,7 +60,7 @@
|
||||
"cwd": "/mnt/d/Work/WeChatProjects/miniprogram-demo/miniprogram",
|
||||
"args": [
|
||||
"\"--config-path\"",
|
||||
"\"/mnt/d/Work/disassembly/wcc-exec/wcc/config/cmd2.txt\""
|
||||
"\"/mnt/d/Work/disassembly/wcc-exec/wcc/config/llw2.txt\""
|
||||
]
|
||||
},
|
||||
"cmake.configureSettings": {
|
||||
|
21
test/runner/ast-helper.js
Normal file
21
test/runner/ast-helper.js
Normal file
@ -0,0 +1,21 @@
|
||||
|
||||
const parser = require("@babel/parser");
|
||||
const tool = require('./tool')
|
||||
|
||||
|
||||
const code2ast = (str)=>{
|
||||
|
||||
const nodeData = JSON.parse(str)
|
||||
|
||||
for(let key in nodeData.generateFunctionContent){
|
||||
const nData = nodeData.generateFunctionContent[key]
|
||||
|
||||
let nodeAST = JSON.parse(JSON.stringify(parser.parse(nData)))
|
||||
nodeAST = tool.removeVariables(nodeAST)
|
||||
nodeData.generateFunctionContent[key] = nodeAST
|
||||
}
|
||||
return nodeData
|
||||
}
|
||||
module.exports = {
|
||||
code2ast
|
||||
}
|
@ -2,7 +2,7 @@ import { spawn } from "child_process";
|
||||
import path from "path";
|
||||
import * as fs from 'fs'
|
||||
|
||||
const wcsc = (args: string[], projectPath: string, outputPath: string | undefined = undefined) => {
|
||||
const wcsc = (args: string[], projectPath: string, outputPath: string | undefined = undefined): Promise<string> => {
|
||||
if(!fs.existsSync(projectPath)){
|
||||
throw new Error('projectPath not exists.')
|
||||
}
|
||||
|
43
test/runner/tool.js
Normal file
43
test/runner/tool.js
Normal file
@ -0,0 +1,43 @@
|
||||
|
||||
const clearNum = ["start", "end", "line", "column", "index", 'parenStart']
|
||||
|
||||
const FUNC = {
|
||||
'[object Object]': (ast)=>{
|
||||
for(let key in ast){
|
||||
const type = Object.prototype.toString.call(ast[key])
|
||||
// console.log(key, ' - ', type)
|
||||
if(clearNum.includes(key))ast[key] = 0
|
||||
else if(FUNC[type]){
|
||||
ast[key] = FUNC[type](ast[key])
|
||||
}else{
|
||||
// console.log('无法识别的类型:', type)
|
||||
}
|
||||
}
|
||||
if(ast.type && ast.type === 'Identifier'){
|
||||
ast.name = ''
|
||||
ast.loc.identifierName = ''
|
||||
}
|
||||
return ast
|
||||
},
|
||||
'[object Array]': (arr)=>{
|
||||
for (let i = 0; i < arr.length; i++) {
|
||||
const ele = arr[i];
|
||||
const type = Object.prototype.toString.call(ele)
|
||||
arr[i] = FUNC[type](ele)
|
||||
}
|
||||
return arr
|
||||
}
|
||||
|
||||
}
|
||||
const removeVariables = (ast)=>{
|
||||
const type = Object.prototype.toString.call(ast)
|
||||
// console.log(type)
|
||||
if(FUNC[type]){
|
||||
return FUNC[type](ast)
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
removeVariables
|
||||
}
|
0
test/spec/wcc/lla/LOG.MD
Normal file
0
test/spec/wcc/lla/LOG.MD
Normal file
217
test/spec/wcc/lla/lla.js
Normal file
217
test/spec/wcc/lla/lla.js
Normal file
@ -0,0 +1,217 @@
|
||||
import { spawn } from 'child_process'
|
||||
import path from 'path'
|
||||
import * as fs from 'fs'
|
||||
|
||||
const samples = []
|
||||
const config3 = {
|
||||
id: 3,
|
||||
projectPath: "/mnt/d/Work/WeChatProjects/miniprogram-demo/miniprogram",
|
||||
args: [
|
||||
"-d",
|
||||
"--split",
|
||||
">_<109",
|
||||
"-xc",
|
||||
"9>_<109./miniprogram_npm/miniprogram-barrage/index.wxml>_<1090>_<109./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml>_<1090>_<109./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml>_<1090>_<109./miniprogram_npm/wxml-to-canvas/index.wxml>_<1090>_<109./page/API/index.wxml>_<1091>_<109set-tab-bar>_<109./page/API/components/set-tab-bar/set-tab-bar.wxml>_<1090>_<109./page/cloud/index.wxml>_<1090>_<109./page/component/index.wxml>_<1090>_<109./page/extend/index.wxml>_<1090",
|
||||
"-lla",
|
||||
"./miniprogram_npm/miniprogram-barrage/index>_<109./miniprogram_npm/miniprogram-recycle-view/recycle-item>_<109./miniprogram_npm/miniprogram-recycle-view/recycle-view>_<109./miniprogram_npm/wxml-to-canvas/index>_<109./page/API/index>_<109./page/API/components/set-tab-bar/set-tab-bar>_<109./page/cloud/index>_<109./page/component/index>_<109./page/extend/index",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
||||
"./page/API/index.wxml",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
||||
"./page/cloud/index.wxml",
|
||||
"./page/common/foot.wxml",
|
||||
"./page/common/head.wxml",
|
||||
"./page/component/index.wxml",
|
||||
"./page/extend/index.wxml",
|
||||
"-gn",
|
||||
"$gwx",
|
||||
]
|
||||
}
|
||||
samples.push(config3)
|
||||
const config4 = {
|
||||
id: 4,
|
||||
projectPath: "/mnt/d/Work/WeChatProjects/miniprogram-demo/miniprogram",
|
||||
args: [
|
||||
"-d",
|
||||
"--split",
|
||||
">_<4362",
|
||||
"-xc",
|
||||
"34>_<4362./packageComponent/pages/canvas/canvas-2d/canvas-2d.wxml>_<43620>_<4362./packageComponent/pages/canvas/webgl/webgl.wxml>_<43620>_<4362./packageComponent/pages/content/icon/icon.wxml>_<43620>_<4362./packageComponent/pages/content/progress/progress.wxml>_<43620>_<4362./packageComponent/pages/content/rich-text/rich-text.wxml>_<43620>_<4362./packageComponent/pages/content/text/text.wxml>_<43620>_<4362./packageComponent/pages/form/button/button.wxml>_<43620>_<4362./packageComponent/pages/form/checkbox/checkbox.wxml>_<43620>_<4362./packageComponent/pages/form/editor/editor.wxml>_<43620>_<4362./packageComponent/pages/form/form/form.wxml>_<43620>_<4362./packageComponent/pages/form/input/input.wxml>_<43620>_<4362./packageComponent/pages/form/label/label.wxml>_<43620>_<4362./packageComponent/pages/form/picker/picker.wxml>_<43620>_<4362./packageComponent/pages/form/picker-view/picker-view.wxml>_<43620>_<4362./packageComponent/pages/form/radio/radio.wxml>_<43620>_<4362./packageComponent/pages/form/slider/slider.wxml>_<43620>_<4362./packageComponent/pages/form/switch/switch.wxml>_<43620>_<4362./packageComponent/pages/form/textarea/textarea.wxml>_<43620>_<4362./packageComponent/pages/map/map/map.wxml>_<43620>_<4362./packageComponent/pages/media/camera/camera.wxml>_<43620>_<4362./packageComponent/pages/media/image/image.wxml>_<43620>_<4362./packageComponent/pages/media/live-player/live-player.wxml>_<43620>_<4362./packageComponent/pages/media/live-pusher/live-pusher.wxml>_<43620>_<4362./packageComponent/pages/media/video/video.wxml>_<43620>_<4362./packageComponent/pages/nav/navigator/navigator.wxml>_<43620>_<4362./packageComponent/pages/obstacle-free/aria-component/aria-component.wxml>_<43620>_<4362./packageComponent/pages/open/ad/ad.wxml>_<43620>_<4362./packageComponent/pages/open/open-data/open-data.wxml>_<43620>_<4362./packageComponent/pages/open/web-view/web-view.wxml>_<43620>_<4362./packageComponent/pages/view/cover-view/cover-view.wxml>_<43620>_<4362./packageComponent/pages/view/movable-view/movable-view.wxml>_<43620>_<4362./packageComponent/pages/view/scroll-view/scroll-view.wxml>_<43620>_<4362./packageComponent/pages/view/swiper/swiper.wxml>_<43620>_<4362./packageComponent/pages/view/view/view.wxml>_<43620",
|
||||
"-lla",
|
||||
"./packageComponent/pages/canvas/canvas-2d/canvas-2d>_<4362./packageComponent/pages/canvas/webgl/webgl>_<4362./packageComponent/pages/content/icon/icon>_<4362./packageComponent/pages/content/progress/progress>_<4362./packageComponent/pages/content/rich-text/rich-text>_<4362./packageComponent/pages/content/text/text>_<4362./packageComponent/pages/form/button/button>_<4362./packageComponent/pages/form/checkbox/checkbox>_<4362./packageComponent/pages/form/editor/editor>_<4362./packageComponent/pages/form/form/form>_<4362./packageComponent/pages/form/input/input>_<4362./packageComponent/pages/form/label/label>_<4362./packageComponent/pages/form/picker/picker>_<4362./packageComponent/pages/form/picker-view/picker-view>_<4362./packageComponent/pages/form/radio/radio>_<4362./packageComponent/pages/form/slider/slider>_<4362./packageComponent/pages/form/switch/switch>_<4362./packageComponent/pages/form/textarea/textarea>_<4362./packageComponent/pages/map/map/map>_<4362./packageComponent/pages/media/camera/camera>_<4362./packageComponent/pages/media/image/image>_<4362./packageComponent/pages/media/live-player/live-player>_<4362./packageComponent/pages/media/live-pusher/live-pusher>_<4362./packageComponent/pages/media/video/video>_<4362./packageComponent/pages/nav/navigator/navigator>_<4362./packageComponent/pages/obstacle-free/aria-component/aria-component>_<4362./packageComponent/pages/open/ad/ad>_<4362./packageComponent/pages/open/open-data/open-data>_<4362./packageComponent/pages/open/web-view/web-view>_<4362./packageComponent/pages/view/cover-view/cover-view>_<4362./packageComponent/pages/view/movable-view/movable-view>_<4362./packageComponent/pages/view/scroll-view/scroll-view>_<4362./packageComponent/pages/view/swiper/swiper>_<4362./packageComponent/pages/view/view/view",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
||||
"./page/API/index.wxml",
|
||||
"./page/cloud/index.wxml",
|
||||
"./page/common/foot.wxml",
|
||||
"./page/common/head.wxml",
|
||||
"./page/component/index.wxml",
|
||||
"./page/extend/index.wxml",
|
||||
"./packageComponent/pages/canvas/canvas-2d/canvas-2d.wxml",
|
||||
"./packageComponent/pages/canvas/webgl/webgl.wxml",
|
||||
"./packageComponent/pages/content/icon/icon.wxml",
|
||||
"./packageComponent/pages/content/progress/progress.wxml",
|
||||
"./packageComponent/pages/content/rich-text/rich-text.wxml",
|
||||
"./packageComponent/pages/content/text/text.wxml",
|
||||
"./packageComponent/pages/form/button/button.wxml",
|
||||
"./packageComponent/pages/form/checkbox/checkbox.wxml",
|
||||
"./packageComponent/pages/form/editor/editor.wxml",
|
||||
"./packageComponent/pages/form/form/form.wxml",
|
||||
"./packageComponent/pages/form/input/input.wxml",
|
||||
"./packageComponent/pages/form/label/label.wxml",
|
||||
"./packageComponent/pages/form/picker/picker.wxml",
|
||||
"./packageComponent/pages/form/picker-view/picker-view.wxml",
|
||||
"./packageComponent/pages/form/radio/radio.wxml",
|
||||
"./packageComponent/pages/form/slider/slider.wxml",
|
||||
"./packageComponent/pages/form/switch/switch.wxml",
|
||||
"./packageComponent/pages/form/textarea/textarea.wxml",
|
||||
"./packageComponent/pages/map/map/map.wxml",
|
||||
"./packageComponent/pages/media/camera/camera.wxml",
|
||||
"./packageComponent/pages/media/image/image.wxml",
|
||||
"./packageComponent/pages/media/live-player/live-player.wxml",
|
||||
"./packageComponent/pages/media/live-pusher/live-pusher.wxml",
|
||||
"./packageComponent/pages/media/video/video.wxml",
|
||||
"./packageComponent/pages/nav/navigator/navigator.wxml",
|
||||
"./packageComponent/pages/obstacle-free/aria-component/aria-component.wxml",
|
||||
"./packageComponent/pages/open/ad/ad.wxml",
|
||||
"./packageComponent/pages/open/open-data/open-data.wxml",
|
||||
"./packageComponent/pages/open/web-view/web-view.wxml",
|
||||
"./packageComponent/pages/view/cover-view/cover-view.wxml",
|
||||
"./packageComponent/pages/view/movable-view/movable-view.wxml",
|
||||
"./packageComponent/pages/view/scroll-view/scroll-view.wxml",
|
||||
"./packageComponent/pages/view/swiper/swiper.wxml",
|
||||
"./packageComponent/pages/view/view/view.wxml",
|
||||
"-gn",
|
||||
"$7061636b616765436f6d706f6e656e742f",
|
||||
]
|
||||
}
|
||||
samples.push(config4)
|
||||
|
||||
// const config5 = {
|
||||
// id: 5,
|
||||
// projectPath: "/mnt/disk1/WeChatProjects/we1",
|
||||
// args: ["-d","--split",">_<2460","-xc","2>_<2460./pages/index/index.wxml>_<24600>_<2460./pages/logs/logs.wxml>_<24600","-lla","./pages/index/index>_<2460./pages/logs/logs","./pages/index/index.wxml","./pages/logs/logs.wxml","-gn","$gwx"]
|
||||
// }
|
||||
// samples.push(config5)
|
||||
|
||||
const test_wine = (config) => {
|
||||
const wine = spawn(
|
||||
path.resolve(__dirname, "../../../wine/wcc.exe"),
|
||||
config.args,
|
||||
{
|
||||
cwd: config.projectPath,
|
||||
}
|
||||
);
|
||||
const spwanData = [],
|
||||
errData = [];
|
||||
wine.stdout.on("data", (e) => {
|
||||
spwanData.push(e);
|
||||
});
|
||||
wine.stderr.on("data", (e) => {
|
||||
errData.push(e);
|
||||
});
|
||||
return new Promise((resolve, reject) => {
|
||||
wine.on("close", (n) => {
|
||||
console.log("wine n: ", n);
|
||||
if (0 === n) {
|
||||
let result = Buffer.concat(spwanData).toString();
|
||||
result = JSON.parse(result);
|
||||
// result = result.generateFunctionContent["__COMMON__"];
|
||||
// delete result.generateFunctionContent["__COMMON__"];
|
||||
result = JSON.stringify(result, null, 4)
|
||||
fs.writeFileSync(
|
||||
path.resolve(__dirname, `./${config.id}/wine_output.json`),
|
||||
result
|
||||
);
|
||||
// process.stdout.write(result);
|
||||
resolve(result);
|
||||
} else {
|
||||
process.stderr.write(
|
||||
"wine error:" +
|
||||
Buffer.concat(errData).toString()
|
||||
);
|
||||
// process.stderr.write(Buffer.concat(spwanData).toString());
|
||||
reject(n);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
const test_node = (config) => {
|
||||
try {
|
||||
fs.mkdirSync(path.resolve(__dirname, config.id + ''))
|
||||
} catch (ignore) {
|
||||
|
||||
}
|
||||
const node_exec = spawn(
|
||||
path.resolve(__dirname, "../../../../build/wcc"),
|
||||
config.args,
|
||||
{
|
||||
cwd: config.projectPath,
|
||||
env: {
|
||||
WX_DEBUG_COMPILER_OUTPUT: path.resolve(__dirname, config.id + ''),
|
||||
},
|
||||
// stdio: 'inherit'
|
||||
}
|
||||
);
|
||||
const spwanData = [],
|
||||
errData = [];
|
||||
node_exec.stdout.on("data", (e) => {
|
||||
spwanData.push(e);
|
||||
// console.log(e.toString())
|
||||
});
|
||||
node_exec.stderr.on("data", (e) => {
|
||||
errData.push(e);
|
||||
// console.log(e.toString())
|
||||
});
|
||||
return new Promise((resolve, reject) => {
|
||||
node_exec.on("close", (n) => {
|
||||
console.log("node n: ", n);
|
||||
if (0 === n) {
|
||||
let result = Buffer.concat(spwanData).toString();
|
||||
// require('fs').writeFileSync('/mnt/disk2/wechat-web-devtools-linux/tmp/llw2.json', result)
|
||||
// process.stdout.write(result);
|
||||
result = JSON.parse(result);
|
||||
// fs.writeFileSync(
|
||||
// path.resolve(__dirname, "./3/node_output1.json"),
|
||||
// JSON.stringify(result, null, 4)
|
||||
// );
|
||||
// result = result.generateFunctionContent["__COMMON__"];
|
||||
// delete result.generateFunctionContent["__COMMON__"];
|
||||
result = JSON.stringify(result, null, 4)
|
||||
fs.writeFileSync(
|
||||
path.resolve(__dirname, `./${config.id}/node_output.json`),
|
||||
result
|
||||
);
|
||||
fs.writeFileSync(
|
||||
path.resolve(__dirname, `./${config.id}/node_stderr.json`),
|
||||
Buffer.concat(errData)
|
||||
);
|
||||
resolve(result);
|
||||
} else {
|
||||
process.stderr.write(Buffer.concat(errData).toString());
|
||||
// process.stderr.write(Buffer.concat(spwanData).toString());
|
||||
reject(n);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
const test = async (config) => {
|
||||
try {
|
||||
const node_result = await test_node(config);
|
||||
const wine_result = await test_wine(config);
|
||||
console.log("结果是否一致:", wine_result.trim() === node_result);
|
||||
} catch (err) {
|
||||
console.error("错误:", err);
|
||||
}
|
||||
};
|
||||
(async ()=>{
|
||||
for(let sample of samples){
|
||||
await test(sample)
|
||||
}
|
||||
})()
|
84
test/spec/wcc/lla/raw-parse.js
Normal file
84
test/spec/wcc/lla/raw-parse.js
Normal file
@ -0,0 +1,84 @@
|
||||
|
||||
const path = require("path");
|
||||
const fs = require("fs");
|
||||
const { spawn } = require("child_process");
|
||||
|
||||
const wxmlParser = (()=>{
|
||||
const getFileArr = (code)=>{
|
||||
// 获取x数组并解析
|
||||
const indexArr = eval(code.match(/var x=(\[.*\]);/)[1]);
|
||||
return indexArr;
|
||||
}
|
||||
const parseGZFuncMap = (code)=>{
|
||||
const exp = `function gz\\$(.*?)\\(\\)\\{[\\s\\S]*?__WXML_GLOBAL__\\.ops_cached\\.\\$.*?\n}`;
|
||||
const gzs = code.matchAll(new RegExp(exp, 'g'));
|
||||
const gzFunc = {}
|
||||
for (const gz of gzs) {
|
||||
gzFunc[`gz$${gz[1]}`] = gz[0];
|
||||
}
|
||||
return gzFunc;
|
||||
}
|
||||
const parseDepsMap = (code, fileArr)=>{
|
||||
|
||||
// 获取所有依赖 _ai函数 被引入的文件, 文件
|
||||
// _ai(i, depPath, e, mainPath, r, c)
|
||||
const deps = code.matchAll(
|
||||
/_ai\(.*?,x\[(\d+)\],.*?,x\[(\d+)\],\d+,\d+\)/g
|
||||
);
|
||||
// 处理依赖
|
||||
const depsResult = {}
|
||||
for (let dep of deps) {
|
||||
const file = fileArr[dep[2]]
|
||||
let depFile = fileArr[dep[1]]
|
||||
depFile = `./${path.join(path.dirname(file), depFile)}`
|
||||
if(depsResult[file]){
|
||||
depsResult[file].push(depFile)
|
||||
}else{
|
||||
depsResult[file] = [depFile]
|
||||
}
|
||||
}
|
||||
return depsResult
|
||||
}
|
||||
const parseDMEMap = (code)=>{
|
||||
// ti: import依赖引入
|
||||
const regExp = /d_\[x\[(\d+)\]\]={}[\s\S]*?e_\[x\[\d+\]\]={f:m\d+,j:\[.*?\],i:\[.*?\],ti:\[(.*?)\],ic:\[.*?\]}/g;
|
||||
const ms = code.matchAll(regExp);
|
||||
const mFunc = {}
|
||||
for (const m of ms) {
|
||||
mFunc[`x[${m[1]}]`] = m[0]
|
||||
}
|
||||
return mFunc
|
||||
}
|
||||
const parseNvRequireCode = (code)=>{
|
||||
const ret = code.match(/(__WXML_GLOBAL__\.ops_set\.\$.*?=[\s\S]*)var x=\[/)
|
||||
return ret[1]
|
||||
}
|
||||
const parseCSCode = (code)=>{
|
||||
const cs = code.match(/var cs([\s\S]*?)function gz/);
|
||||
return cs[1];
|
||||
}
|
||||
const parse = (data, code)=>{
|
||||
data.nv_require = parseNvRequireCode(code)
|
||||
data.cs = parseCSCode(code)
|
||||
data.gz = parseGZFuncMap(code)
|
||||
data.fileArr = getFileArr(code);
|
||||
data.deps = parseDepsMap(code, data.fileArr)
|
||||
data.dme = parseDMEMap(code)
|
||||
}
|
||||
return {
|
||||
parse
|
||||
}
|
||||
})()
|
||||
|
||||
const data = fs.readFileSync('/home/msojocs/Documents/Work/compiler/test/wcc/lla/miniprogram-demo/初次加载1/linux_output.js')
|
||||
const code = data.toString();
|
||||
|
||||
const fileArr = wxmlParser.getFileArr(code)
|
||||
// console.log(fileArr)
|
||||
const gzFunc = wxmlParser.parseGZFuncMap(code)
|
||||
// console.log(gzFunc)
|
||||
const deps = wxmlParser.parseDepsMap(code, fileArr)
|
||||
// console.log(deps)
|
||||
const mFunc = wxmlParser.parseDMEMap(code)
|
||||
const nvRequire = wxmlParser.parseNvRequireCode(code)
|
||||
console.log(nvRequire)
|
96
test/spec/wcc/lla/wcc.js
Normal file
96
test/spec/wcc/lla/wcc.js
Normal file
@ -0,0 +1,96 @@
|
||||
|
||||
const path = require("path");
|
||||
const fs = require("fs");
|
||||
const { spawn } = require("child_process");
|
||||
|
||||
|
||||
const wcc = (args, projectPath, outputPath = undefined) => {
|
||||
const node_exec = spawn(
|
||||
path.resolve(__dirname, "../../../nodejs/wcc"),
|
||||
args,
|
||||
{
|
||||
cwd: projectPath,
|
||||
env: {
|
||||
WX_DEBUG_COMPILER_OUTPUT: outputPath,
|
||||
},
|
||||
// stdio: 'inherit'
|
||||
}
|
||||
);
|
||||
const spwanData = [],
|
||||
errData = [];
|
||||
node_exec.stdout.on("data", (e) => {
|
||||
spwanData.push(e);
|
||||
// console.log(e.toString())
|
||||
});
|
||||
node_exec.stderr.on("data", (e) => {
|
||||
errData.push(e);
|
||||
// console.log(e.toString())
|
||||
});
|
||||
return new Promise((resolve, reject) => {
|
||||
node_exec.on("close", (n) => {
|
||||
// console.log("node n: ", n);
|
||||
outputPath && require('fs').writeFileSync(`${outputPath}/linux_err.js`, Buffer.concat(errData).toString())
|
||||
if (0 === n) {
|
||||
let result = Buffer.concat(spwanData).toString();
|
||||
// process.stdout.write(result);
|
||||
// result = JSON.parse(result);
|
||||
resolve(result);
|
||||
} else {
|
||||
process.stderr.write(Buffer.concat(errData).toString());
|
||||
// process.stderr.write(Buffer.concat(spwanData).toString());
|
||||
reject(n);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
const test = async () => {
|
||||
const projectPath = path.resolve(
|
||||
__dirname,
|
||||
"../../examples/miniprogram-demo/miniprogram"
|
||||
);
|
||||
const args = [
|
||||
"-d",
|
||||
"--split",
|
||||
">_<1989",
|
||||
"-xc",
|
||||
"12>_<1989./component/navigation-bar/navigation-bar.wxml>_<19891>_<1989mp-navigation-bar>_<1989./components/navigation-bar/index.wxml>_<19891>_<1989mp-navigation-bar>_<1989./components/page-scroll/index.wxml>_<19891>_<1989mp-navigation-bar>_<1989./miniprogram_npm/miniprogram-barrage/index.wxml>_<19890>_<1989./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml>_<19890>_<1989./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml>_<19890>_<1989./miniprogram_npm/wxml-to-canvas/index.wxml>_<19890>_<1989./page/API/index.wxml>_<19892>_<1989set-tab-bar>_<1989mp-navigation-bar>_<1989./page/API/components/set-tab-bar/set-tab-bar.wxml>_<19891>_<1989mp-navigation-bar>_<1989./page/cloud/index.wxml>_<19891>_<1989mp-navigation-bar>_<1989./page/component/index.wxml>_<19891>_<1989mp-navigation-bar>_<1989./page/extend/index.wxml>_<19891>_<1989mp-navigation-bar",
|
||||
"-lla",
|
||||
"./component/navigation-bar/navigation-bar>_<1989./components/navigation-bar/index>_<1989./components/page-scroll/index>_<1989./miniprogram_npm/miniprogram-barrage/index>_<1989./miniprogram_npm/miniprogram-recycle-view/recycle-item>_<1989./miniprogram_npm/miniprogram-recycle-view/recycle-view>_<1989./miniprogram_npm/wxml-to-canvas/index>_<1989./page/API/index>_<1989./page/API/components/set-tab-bar/set-tab-bar>_<1989./page/cloud/index>_<1989./page/component/index>_<1989./page/extend/index",
|
||||
"./common/foot.wxml",
|
||||
"./common/head.wxml",
|
||||
"./component/navigation-bar/navigation-bar.wxml",
|
||||
"./components/navigation-bar/index.wxml",
|
||||
"./components/page-scroll/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
||||
"./page/API/index.wxml",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
||||
"./page/cloud/index.wxml",
|
||||
"./page/common/foot.wxml",
|
||||
"./page/common/head.wxml",
|
||||
"./page/component/index.wxml",
|
||||
"./page/extend/index.wxml",
|
||||
"-gn",
|
||||
"$gwx",
|
||||
];
|
||||
const storagePath = path.resolve(
|
||||
__dirname,
|
||||
`miniprogram-demo/tmp`
|
||||
);
|
||||
try {
|
||||
fs.mkdirSync(storagePath, { recursive: true });
|
||||
} catch (error) {}
|
||||
const n = JSON.parse(await wcc(args, projectPath, storagePath));
|
||||
// const w = JSON.parse(await wine.wcc(args, projectPath));
|
||||
// fs.writeFileSync(
|
||||
// `${storagePath}/wine-output.json`,
|
||||
// JSON.stringify(w, null, 4)
|
||||
// );
|
||||
fs.writeFileSync(
|
||||
`${storagePath}/node-output.json`,
|
||||
JSON.stringify(n, null, 4)
|
||||
);
|
||||
};
|
||||
test();
|
26
test/spec/wcc/llw/LOG.MD
Normal file
26
test/spec/wcc/llw/LOG.MD
Normal file
@ -0,0 +1,26 @@
|
||||
# unicode
|
||||
| 符号 | unicode |
|
||||
|-----|---------|
|
||||
| tab | \u0009 |
|
||||
| t | \u0074 |
|
||||
|
||||
# 起始
|
||||
var cs = cs || [];\u000a$gwx_XC_1=function(_,_v,_n,_p,_s,_wp,_wl,$gwn,$gwl,$gwh,wh,$gstack,$gwrt,gra,grb,TestTest,wfor,_ca,_da,_r,_rz,_o,_oz,_1,_1z,_2,_2z,_m,_mz,nv_getDate,nv_getRegExp,nv_console,nv_parseInt,nv_parseFloat,nv_isNaN,nv_isFinite,nv_decodeURI,nv_decodeURIComponent,nv_encodeURI,nv_encodeURIComponent,$gdc,nv_JSON,_af,_gv,_ai,_grp,_gd,_gapi,$ixc,_ic,_w,_ev,_tsd){return function(path,global){\u000aif(typeof global==='undefined'){if (typeof __GWX_GLOBAL__==='undefined')global={};else global=__GWX_GLOBAL__;}if(typeof __WXML_GLOBAL__ === 'undefined') {__WXML_GLOBAL__={};\u000a}__WXML_GLOBAL__.modules = __WXML_GLOBAL__.modules || {};\u000a
|
||||
|
||||
#
|
||||
var e_={}\u000aif(typeof(global.entrys)==='undefined')global.entrys={};e_=global.entrys;\u000avar d_={}\u000aif(typeof(global.defines)==='undefined')global.defines={};d_=global.defines;\u000avar f_={}\u000aif(typeof(global.modules)==='undefined')global.modules={};f_=global.modules || {};\u000avar p_={}\u000avar cs = cs || [];\u000a__WXML_GLOBAL__.ops_cached = __WXML_GLOBAL__.ops_cached || {}\u000a__WXML_GLOBAL__.ops_set = __WXML_GLOBAL__.ops_set || {};\u000a__WXML_GLOBAL__.ops_init = __WXML_GLOBAL__.ops_init || {};\u000avar z=__WXML_GLOBAL__.ops_set.$gwx_XC_1 || [];\u000a
|
||||
|
||||
# 函数
|
||||
function gz$gwx_XC_0_1(){\u000aif( __WXML_GLOBAL__.ops_cached.$gwx_XC_0_1)return __WXML_GLOBAL__.ops_cached.$gwx_XC_0_1\u000a__WXML_GLOBAL__.ops_cached.$gwx_XC_0_1=[];\u000a(function(z){var a=11;function Z(ops){z.push(ops)}\u000aZ([3,'container'])\u000aZ([3,'userinfo'])\u000aZ([[7],[3,'canIUseOpenData']])\u000aZ([3,'bindViewTap'])\u000aZ([3,'userinfo-avatar'])\u000aZ([3,'width: 183rpx; height: 148rpx; display: block; box-sizing: border-box'])\u000aZ([3,'userAvatarUrl'])\u000aZ([3,'userNickName'])\u000aZ([[2,'!'],[[7],[3,'hasUserInfo']]])\u000aZ([[7],[3,'canIUseGetUserProfile']])\u000aZ([3,'getUserProfile'])\u000aZ([3,' 获取头像昵称 '])\u000aZ([[7],[3,'canIUse']])\u000aZ([3,'getUserInfo'])\u000aZ(z[13])\u000aZ(z[11])\u000aZ([3,' 请使用1.4.4及以上版本基础库 '])\u000aZ(z[3])\u000aZ(z[4])\u000aZ([3,'cover'])\u000aZ([[6],[[7],[3,'userInfo']],[3,'avatarUrl']])\u000aZ([3,'userinfo-nickname'])\u000aZ([a,[[6],[[7],[3,'userInfo']],[3,'nickName']]])\u000aZ([3,'usermotto'])\u000aZ([3,'user-motto'])\u000aZ([a,[[7],[3,'motto']]])\u000a})(__WXML_GLOBAL__.ops_cached.$gwx_XC_0_1);return __WXML_GLOBAL__.ops_cached.$gwx_XC_0_1\u000a}
|
||||
|
||||
#
|
||||
\u000a__WXML_GLOBAL__.ops_set.$gwx_XC_0=z;\u000a__WXML_GLOBAL__.ops_init.$gwx_XC_0=true;\u000avar x=['./pages/index/index.wxml'];d_[x[0]]={}\u000a
|
||||
|
||||
|
||||
var m0=function(e,s,r,gg){\u000avar z=gz$gwx_XC_0_1()\u000acs.push(\u0022./pages/index/index.wxml:view:2:2\u0022)\u000avar oB=_n('view')\u000a_rz(z,oB,'class',0,e,s,gg)\u000acs.push(\u0022./pages/index/index.wxml:view:3:4\u0022)\u000avar xC=_n('view')\u000a_rz(z,xC,'class',1,e,s,gg)\u000avar oD=_v()\u000a_(xC,oD)\u000aif(_oz(z,2,e,s,gg)){oD.wxVkey=1\u000acs.push(\u0022./pages/index/index.wxml:block:4:6\u0022)\u000acs.push(\u0022./pages/index/index.wxml:view:5:8\u0022)\u000avar fE=_mz(z,'view',['bindtap',3,'class',1,'style',2],[],e,s,gg)\u000acs.push(\u0022./pages/index/index.wxml:open-data:6:10\u0022)\u000avar cF=_n('open-data')\u000a_rz(z,cF,'type',6,e,s,gg)\u000acs.pop()\u000a_(fE,cF)\u000acs.pop()\u000a_(oD,fE)\u000acs.push(\u0022./pages/index/index.wxml:open-data:8:8\u0022)\u000avar hG=_n('open-data')\u000a_rz(z,hG,'type',7,e,s,gg)\u000acs.pop()\u000a_(oD,hG)\u000acs.pop()\u000a}\u000aelse if(_oz(z,8,e,s,gg)){oD.wxVkey=2\u000acs.push(\u0022./pages/index/index.wxml:block:10:6\u0022)\u000avar oH=_v()\u000a_(oD,oH)\u000aif(_oz(z,9,e,s,gg)){oH.wxVkey=1\u000acs.push(\u0022./pages/index/index.wxml:button:11:8\u0022)\u000acs.push(\u0022./pages/index/index.wxml:button:11:8\u0022)\u000avar cI=_n('button')\u000a_rz(z,cI,'bindtap',10,e,s,gg)\u000avar oJ=_oz(z,11,e,s,gg)\u000a_(cI,oJ)\u000acs.pop()\u000a_(oH,cI)\u000acs.pop()\u000a}\u000aelse if(_oz(z,12,e,s,gg)){oH.wxVkey=2\u000acs.push(\u0022./pages/index/index.wxml:button:12:8\u0022)\u000acs.push(\u0022./pages/index/index.wxml:button:12:8\u0022)\u000avar lK=_mz(z,'button',['bindgetuserinfo',13,'openType',1],[],e,s,gg)\u000avar aL=_oz(z,15,e,s,gg)\u000a_(lK,aL)\u000acs.pop()\u000a_(oH,lK)\u000acs.pop()\u000a}\u000aelse{oH.wxVkey=3\u000acs.push(\u0022./pages/index/index.wxml:view:13:8\u0022)\u000acs.push(\u0022./pages/index/index.wxml:view:13:8\u0022)\u000avar tM=_n('view')\u000avar eN=_oz(z,16,e,s,gg)\u000a_(tM,eN)\u000acs.pop()\u000a_(oH,tM)\u000acs.pop()\u000a}\u000aoH.wxXCkey=1\u000acs.pop()\u000a}\u000aelse{oD.wxVkey=3\u000acs.push(\u0022./pages/index/index.wxml:block:15:6\u0022)\u000acs.push(\u0022./pages/index/index.wxml:image:16:8\u0022)\u000avar bO=_mz(z,'image',['bindtap',17,'class',1,'mode',2,'src',3],[],e,s,gg)\u000acs.pop()\u000a_(oD,bO)\u000acs.push(\u0022./pages/index/index.wxml:text:17:8\u0022)\u000avar oP=_n('text')\u000a_rz(z,oP,'class',21,e,s,gg)\u000avar xQ=_oz(z,22,e,s,gg)\u000a_(oP,xQ)\u000acs.pop()\u000a_(oD,oP)\u000acs.pop()\u000a}\u000aoD.wxXCkey=1\u000acs.pop()\u000a_(oB,xC)\u000acs.push(\u0022./pages/index/index.wxml:view:20:4\u0022)\u000avar oR=_n('view')\u000a_rz(z,oR,'class',23,e,s,gg)\u000acs.push(\u0022./pages/index/index.wxml:text:21:6\u0022)\u000avar fS=_n('text')\u000a_rz(z,fS,'class',24,e,s,gg)\u000avar cT=_oz(z,25,e,s,gg)\u000a_(fS,cT)\u000acs.pop()\u000a_(oR,fS)\u000acs.pop()\u000a_(oB,oR)\u000acs.pop()\u000a_(r,oB)\u000areturn r\u000a}\u000ae_[x[0]]={f:m0,j:[],i:[],ti:[],ic:[]}\u000a
|
||||
|
||||
#
|
||||
if(path&&e_[path]){\u000aouterGlobal.__wxml_comp_version__=0.02\u000areturn function(env,dd,global){$gwxc=0;var root={\u0022tag\u0022:\u0022wx-page\u0022};root.children=[]\u000a;g=\u0022$gwx_XC_0\u0022;var main=e_[path].f\u000acs=[]\u000aif (typeof global===\u0022undefined\u0022)global={};global.f=$gdc(f_[path],\u0022\u0022,1);\u000aif(typeof(outerGlobal.__webview_engine_version__)!='undefined'&&outerGlobal.__webview_engine_version__+1e-6>=0.02+1e-6&&outerGlobal.__mergeData__)\u000a{\u000aenv=outerGlobal.__mergeData__(env,dd);\u000a}\u000atry{\u000amain(env,{},root,global);\u000a_tsd(root)\u000aif(typeof(outerGlobal.__webview_engine_version__)=='undefined'|| outerGlobal.__webview_engine_version__+1e-6<0.01+1e-6){return _ev(root);}\u000a}catch(err){\u000aconsole.log(cs, env);\u000aconsole.log(err)\u000athrow err\u000a}\u000a;g=\u0022\u0022;\u000areturn root;\u000a}\u000a}\u000a}\u000a}
|
||||
|
||||
# end
|
||||
(__g.a,__g.b,__g.c,__g.d,__g.e,__g.f,__g.g,__g.h,__g.i,__g.j,__g.k,__g.l,__g.m,__g.n,__g.o,__g.p,__g.q,__g.r,__g.s,__g.t,__g.u,__g.v,__g.w,__g.x,__g.y,__g.z,__g.A,__g.B,__g.C,__g.D,__g.E,__g.F,__g.G,__g.H,__g.I,__g.J,__g.K,__g.L,__g.M,__g.N,__g.O,__g.P,__g.Q,__g.R,__g.S,__g.T,__g.U,__g.V,__g.W,__g.X,__g.Y,__g.Z,__g.aa);if(__vd_version_info__.delayedGwx||false)$gwx_XC_0();
|
228
test/spec/wcc/llw/llw.js
Normal file
228
test/spec/wcc/llw/llw.js
Normal file
@ -0,0 +1,228 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const { spawn, spawnSync } = require("child_process");
|
||||
const path = require("path");
|
||||
const fs = require("fs");
|
||||
const { exit } = require("process");
|
||||
|
||||
const samples = []
|
||||
const sample2 = {
|
||||
projectPath: "/mnt/disk1/WeChatProjects/qs-wxapp/",
|
||||
args:[
|
||||
"-d",
|
||||
"--split",
|
||||
">_<9912",
|
||||
"-cc",
|
||||
"1>_<9912./pages/index/index.wxml>_<99120",
|
||||
"-llw",
|
||||
"./pages/index/index",
|
||||
"./pages/index/index.wxml",
|
||||
"-gn",
|
||||
"$gwx",
|
||||
]};
|
||||
samples.push([sample2, 2])
|
||||
const sample3 = {
|
||||
projectPath: "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/",
|
||||
args:[
|
||||
"-d",
|
||||
"--split",
|
||||
">_<4685",
|
||||
"-cc",
|
||||
"9>_<4685./miniprogram_npm/miniprogram-barrage/index.wxml>_<46850>_<4685./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml>_<46850>_<4685./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml>_<46850>_<4685./miniprogram_npm/wxml-to-canvas/index.wxml>_<46850>_<4685./page/API/index.wxml>_<46851>_<4685set-tab-bar>_<4685./page/API/components/set-tab-bar/set-tab-bar.wxml>_<46850>_<4685./page/cloud/index.wxml>_<46850>_<4685./page/component/index.wxml>_<46850>_<4685./page/extend/index.wxml>_<46850",
|
||||
"-llw",
|
||||
"./miniprogram_npm/miniprogram-barrage/index>_<4685./miniprogram_npm/miniprogram-recycle-view/recycle-item>_<4685./miniprogram_npm/miniprogram-recycle-view/recycle-view>_<4685./miniprogram_npm/wxml-to-canvas/index>_<4685./page/API/index>_<4685./page/API/components/set-tab-bar/set-tab-bar>_<4685./page/cloud/index>_<4685./page/component/index>_<4685./page/extend/index",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
||||
"./page/API/index.wxml",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
||||
"./page/cloud/index.wxml",
|
||||
"./page/common/foot.wxml",
|
||||
"./page/common/head.wxml",
|
||||
"./page/component/index.wxml",
|
||||
"./page/extend/index.wxml",
|
||||
"-gn",
|
||||
"$gwx",
|
||||
]};
|
||||
samples.push([sample3, 3])
|
||||
const sample4= {
|
||||
projectPath: "/mnt/disk1/WeChatProjects/miniprogram-demo/miniprogram/",
|
||||
args: [
|
||||
"-d",
|
||||
"--split",
|
||||
">_<3975",
|
||||
"-cc",
|
||||
"34>_<3975./packageComponent/pages/canvas/canvas-2d/canvas-2d.wxml>_<39750>_<3975./packageComponent/pages/canvas/webgl/webgl.wxml>_<39750>_<3975./packageComponent/pages/content/icon/icon.wxml>_<39750>_<3975./packageComponent/pages/content/progress/progress.wxml>_<39750>_<3975./packageComponent/pages/content/rich-text/rich-text.wxml>_<39750>_<3975./packageComponent/pages/content/text/text.wxml>_<39750>_<3975./packageComponent/pages/form/button/button.wxml>_<39750>_<3975./packageComponent/pages/form/checkbox/checkbox.wxml>_<39750>_<3975./packageComponent/pages/form/editor/editor.wxml>_<39750>_<3975./packageComponent/pages/form/form/form.wxml>_<39750>_<3975./packageComponent/pages/form/input/input.wxml>_<39750>_<3975./packageComponent/pages/form/label/label.wxml>_<39750>_<3975./packageComponent/pages/form/picker/picker.wxml>_<39750>_<3975./packageComponent/pages/form/picker-view/picker-view.wxml>_<39750>_<3975./packageComponent/pages/form/radio/radio.wxml>_<39750>_<3975./packageComponent/pages/form/slider/slider.wxml>_<39750>_<3975./packageComponent/pages/form/switch/switch.wxml>_<39750>_<3975./packageComponent/pages/form/textarea/textarea.wxml>_<39750>_<3975./packageComponent/pages/map/map/map.wxml>_<39750>_<3975./packageComponent/pages/media/camera/camera.wxml>_<39750>_<3975./packageComponent/pages/media/image/image.wxml>_<39750>_<3975./packageComponent/pages/media/live-player/live-player.wxml>_<39750>_<3975./packageComponent/pages/media/live-pusher/live-pusher.wxml>_<39750>_<3975./packageComponent/pages/media/video/video.wxml>_<39750>_<3975./packageComponent/pages/nav/navigator/navigator.wxml>_<39750>_<3975./packageComponent/pages/obstacle-free/aria-component/aria-component.wxml>_<39750>_<3975./packageComponent/pages/open/ad/ad.wxml>_<39750>_<3975./packageComponent/pages/open/open-data/open-data.wxml>_<39750>_<3975./packageComponent/pages/open/web-view/web-view.wxml>_<39750>_<3975./packageComponent/pages/view/cover-view/cover-view.wxml>_<39750>_<3975./packageComponent/pages/view/movable-view/movable-view.wxml>_<39750>_<3975./packageComponent/pages/view/scroll-view/scroll-view.wxml>_<39750>_<3975./packageComponent/pages/view/swiper/swiper.wxml>_<39750>_<3975./packageComponent/pages/view/view/view.wxml>_<39750",
|
||||
"-llw",
|
||||
"./packageComponent/pages/canvas/canvas-2d/canvas-2d>_<3975./packageComponent/pages/canvas/webgl/webgl>_<3975./packageComponent/pages/content/icon/icon>_<3975./packageComponent/pages/content/progress/progress>_<3975./packageComponent/pages/content/rich-text/rich-text>_<3975./packageComponent/pages/content/text/text>_<3975./packageComponent/pages/form/button/button>_<3975./packageComponent/pages/form/checkbox/checkbox>_<3975./packageComponent/pages/form/editor/editor>_<3975./packageComponent/pages/form/form/form>_<3975./packageComponent/pages/form/input/input>_<3975./packageComponent/pages/form/label/label>_<3975./packageComponent/pages/form/picker/picker>_<3975./packageComponent/pages/form/picker-view/picker-view>_<3975./packageComponent/pages/form/radio/radio>_<3975./packageComponent/pages/form/slider/slider>_<3975./packageComponent/pages/form/switch/switch>_<3975./packageComponent/pages/form/textarea/textarea>_<3975./packageComponent/pages/map/map/map>_<3975./packageComponent/pages/media/camera/camera>_<3975./packageComponent/pages/media/image/image>_<3975./packageComponent/pages/media/live-player/live-player>_<3975./packageComponent/pages/media/live-pusher/live-pusher>_<3975./packageComponent/pages/media/video/video>_<3975./packageComponent/pages/nav/navigator/navigator>_<3975./packageComponent/pages/obstacle-free/aria-component/aria-component>_<3975./packageComponent/pages/open/ad/ad>_<3975./packageComponent/pages/open/open-data/open-data>_<3975./packageComponent/pages/open/web-view/web-view>_<3975./packageComponent/pages/view/cover-view/cover-view>_<3975./packageComponent/pages/view/movable-view/movable-view>_<3975./packageComponent/pages/view/scroll-view/scroll-view>_<3975./packageComponent/pages/view/swiper/swiper>_<3975./packageComponent/pages/view/view/view",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
||||
"./page/API/index.wxml",
|
||||
"./page/cloud/index.wxml",
|
||||
"./page/common/foot.wxml",
|
||||
"./page/common/head.wxml",
|
||||
"./page/component/index.wxml",
|
||||
"./page/extend/index.wxml",
|
||||
"./packageComponent/pages/canvas/canvas-2d/canvas-2d.wxml",
|
||||
"./packageComponent/pages/canvas/webgl/webgl.wxml",
|
||||
"./packageComponent/pages/content/icon/icon.wxml",
|
||||
"./packageComponent/pages/content/progress/progress.wxml",
|
||||
"./packageComponent/pages/content/rich-text/rich-text.wxml",
|
||||
"./packageComponent/pages/content/text/text.wxml",
|
||||
"./packageComponent/pages/form/button/button.wxml",
|
||||
"./packageComponent/pages/form/checkbox/checkbox.wxml",
|
||||
"./packageComponent/pages/form/editor/editor.wxml",
|
||||
"./packageComponent/pages/form/form/form.wxml",
|
||||
"./packageComponent/pages/form/input/input.wxml",
|
||||
"./packageComponent/pages/form/label/label.wxml",
|
||||
"./packageComponent/pages/form/picker/picker.wxml",
|
||||
"./packageComponent/pages/form/picker-view/picker-view.wxml",
|
||||
"./packageComponent/pages/form/radio/radio.wxml",
|
||||
"./packageComponent/pages/form/slider/slider.wxml",
|
||||
"./packageComponent/pages/form/switch/switch.wxml",
|
||||
"./packageComponent/pages/form/textarea/textarea.wxml",
|
||||
"./packageComponent/pages/map/map/map.wxml",
|
||||
"./packageComponent/pages/media/camera/camera.wxml",
|
||||
"./packageComponent/pages/media/image/image.wxml",
|
||||
"./packageComponent/pages/media/live-player/live-player.wxml",
|
||||
"./packageComponent/pages/media/live-pusher/live-pusher.wxml",
|
||||
"./packageComponent/pages/media/video/video.wxml",
|
||||
"./packageComponent/pages/nav/navigator/navigator.wxml",
|
||||
"./packageComponent/pages/obstacle-free/aria-component/aria-component.wxml",
|
||||
"./packageComponent/pages/open/ad/ad.wxml",
|
||||
"./packageComponent/pages/open/open-data/open-data.wxml",
|
||||
"./packageComponent/pages/open/web-view/web-view.wxml",
|
||||
"./packageComponent/pages/view/cover-view/cover-view.wxml",
|
||||
"./packageComponent/pages/view/movable-view/movable-view.wxml",
|
||||
"./packageComponent/pages/view/scroll-view/scroll-view.wxml",
|
||||
"./packageComponent/pages/view/swiper/swiper.wxml",
|
||||
"./packageComponent/pages/view/view/view.wxml",
|
||||
"-gn",
|
||||
"$7061636b616765436f6d706f6e656e742f",
|
||||
]
|
||||
}
|
||||
samples.push([sample4, 4])
|
||||
|
||||
const sample5 = {
|
||||
projectPath: "/mnt/disk1/WeChatProjects/we1",
|
||||
args: ["-d","--split",">_<7271","-cc","2>_<7271./pages/index/index.wxml>_<72710>_<7271./pages/logs/logs.wxml>_<72710","-llw","./pages/index/index>_<7271./pages/logs/logs","./pages/index/index.wxml","./pages/logs/logs.wxml","-gn","$gwx"]
|
||||
}
|
||||
samples.push([sample5, 5])
|
||||
|
||||
const test_wine = (config, id) => {
|
||||
try {
|
||||
fs.mkdirSync(path.resolve(__dirname, '' + id))
|
||||
} catch (ignore) {
|
||||
|
||||
}
|
||||
const wine = spawn(
|
||||
path.resolve(__dirname, "../../../wine/wcc.exe"),
|
||||
config.args,
|
||||
{
|
||||
cwd: config.projectPath,
|
||||
}
|
||||
);
|
||||
const spwanData = [],
|
||||
errData = [];
|
||||
wine.stdout.on("data", (e) => {
|
||||
spwanData.push(e);
|
||||
});
|
||||
wine.stderr.on("data", (e) => {
|
||||
errData.push(e);
|
||||
});
|
||||
return new Promise((resolve, reject) => {
|
||||
wine.on("close", (n) => {
|
||||
console.log("wine n: ", n);
|
||||
if (0 === n) {
|
||||
let result = Buffer.concat(spwanData).toString();
|
||||
result = JSON.parse(result);
|
||||
// delete result.generateFunctionContent["__COMMON__"];
|
||||
result = JSON.stringify(result, null, 4)
|
||||
// result = result.generateFunctionContent["__COMMON__"];
|
||||
fs.writeFileSync(
|
||||
path.resolve(__dirname, `./${id}/wine_output.json`),
|
||||
result
|
||||
);
|
||||
// process.stdout.write(result);
|
||||
resolve(result);
|
||||
} else {
|
||||
process.stderr.write(
|
||||
"wine error:",
|
||||
Buffer.concat(errData).toString()
|
||||
);
|
||||
// process.stderr.write(Buffer.concat(spwanData).toString());
|
||||
reject(n);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
const test_node = (config, id) => {
|
||||
try {
|
||||
fs.mkdirSync(path.resolve(__dirname, '' + id))
|
||||
} catch (ignore) {
|
||||
|
||||
}
|
||||
const node_exec = spawn(
|
||||
path.resolve(__dirname, "../../../nodejs/wcc"),
|
||||
config.args,
|
||||
{
|
||||
cwd: config.projectPath,
|
||||
env: {
|
||||
WX_DEBUG_COMPILER_OUTPUT: path.resolve(__dirname, `./${id}`),
|
||||
},
|
||||
// stdio: 'inherit'
|
||||
}
|
||||
);
|
||||
const spwanData = [],
|
||||
errData = [];
|
||||
node_exec.stdout.on("data", (e) => {
|
||||
spwanData.push(e);
|
||||
// console.log(e.toString())
|
||||
});
|
||||
node_exec.stderr.on("data", (e) => {
|
||||
errData.push(e);
|
||||
// console.log(e.toString())
|
||||
});
|
||||
return new Promise((resolve, reject) => {
|
||||
node_exec.on("close", (n) => {
|
||||
console.log("node n: ", n);
|
||||
process.stderr.write(`=========stderr输出=========\n${Buffer.concat(errData).toString()}\n\n=========stderr输出 END=========\n`);
|
||||
if (0 === n) {
|
||||
let result = Buffer.concat(spwanData).toString();
|
||||
// require('fs').writeFileSync('/mnt/disk2/wechat-web-devtools-linux/tmp/llw2.json', result)
|
||||
// process.stdout.write(result);
|
||||
result = JSON.parse(result);
|
||||
// delete result.generateFunctionContent["__COMMON__"];
|
||||
result = JSON.stringify(result, null, 4)
|
||||
// result = result.generateFunctionContent["__COMMON__"];
|
||||
fs.writeFileSync(
|
||||
path.resolve(__dirname, `./${id}/node_output.json`),
|
||||
result
|
||||
);
|
||||
resolve(result);
|
||||
} else {
|
||||
reject(n);
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
const test = async (config, id) => {
|
||||
try {
|
||||
const node_result = await test_node(config, id);
|
||||
const wine_result = await test_wine(config, id);
|
||||
console.log("结果是否一致:", wine_result.trim() === node_result);
|
||||
} catch (err) {
|
||||
console.error("错误:", err);
|
||||
}
|
||||
};
|
||||
(async ()=>{
|
||||
for (const sample of samples) {
|
||||
// if(sample[1] === 2)
|
||||
await test(sample[0], sample[1])
|
||||
}
|
||||
})()
|
202
test/spec/wcc/raw/raw.test.js
Normal file
202
test/spec/wcc/raw/raw.test.js
Normal file
@ -0,0 +1,202 @@
|
||||
const assert = require("assert");
|
||||
const node = require("../../runner/node");
|
||||
const wine = require("../../runner/wine");
|
||||
const path = require("path");
|
||||
const fs = require("fs");
|
||||
|
||||
describe("wcc - raw", function () {
|
||||
describe("Raw: node output should equal with wine", function () {
|
||||
// afterEach(function(){
|
||||
// if(this.currentTest.state === 'failed'){
|
||||
// console.error('failed', this.currentTest)
|
||||
// }
|
||||
// })
|
||||
it("初次加载1", async function () {
|
||||
const projectPath = path.resolve(
|
||||
__dirname,
|
||||
"../../examples/miniprogram-demo/miniprogram"
|
||||
);
|
||||
const args = [
|
||||
"-d",
|
||||
"--split",
|
||||
">_<8005",
|
||||
"-xc",
|
||||
"12>_<8005./component/navigation-bar/navigation-bar.wxml>_<80051>_<8005mp-navigation-bar>_<8005./components/navigation-bar/index.wxml>_<80051>_<8005mp-navigation-bar>_<8005./components/page-scroll/index.wxml>_<80051>_<8005mp-navigation-bar>_<8005./miniprogram_npm/miniprogram-barrage/index.wxml>_<80050>_<8005./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml>_<80050>_<8005./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml>_<80050>_<8005./miniprogram_npm/wxml-to-canvas/index.wxml>_<80050>_<8005./page/API/index.wxml>_<80052>_<8005set-tab-bar>_<8005mp-navigation-bar>_<8005./page/API/components/set-tab-bar/set-tab-bar.wxml>_<80051>_<8005mp-navigation-bar>_<8005./page/cloud/index.wxml>_<80051>_<8005mp-navigation-bar>_<8005./page/component/index.wxml>_<80051>_<8005mp-navigation-bar>_<8005./page/extend/index.wxml>_<80051>_<8005mp-navigation-bar",
|
||||
"./common/foot.wxml",
|
||||
"./common/head.wxml",
|
||||
"./component/navigation-bar/navigation-bar.wxml",
|
||||
"./components/navigation-bar/index.wxml",
|
||||
"./components/page-scroll/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
||||
"./page/API/index.wxml",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
||||
"./page/cloud/index.wxml",
|
||||
"./page/common/foot.wxml",
|
||||
"./page/common/head.wxml",
|
||||
"./page/component/index.wxml",
|
||||
"./page/extend/index.wxml",
|
||||
"-gn",
|
||||
"$gwx",
|
||||
];
|
||||
const w = (await wine.wcc(args, projectPath)).replaceAll("\r\n", "\n");
|
||||
const n = await node.wcc(args, projectPath);
|
||||
const storagePath = path.resolve(
|
||||
__dirname,
|
||||
`miniprogram-demo/${this.test.title}`
|
||||
);
|
||||
try {
|
||||
fs.mkdirSync(storagePath, { recursive: true });
|
||||
} catch (error) {}
|
||||
|
||||
fs.writeFileSync(`${storagePath}/wine-output.js`, w);
|
||||
fs.writeFileSync(`${storagePath}/node-output.js`, n);
|
||||
assert.equal(w, n);
|
||||
});
|
||||
it("初次加载2", async function () {
|
||||
const projectPath = path.resolve(
|
||||
__dirname,
|
||||
"../../examples/miniprogram-demo/miniprogram/"
|
||||
);
|
||||
const args = [
|
||||
"-d",
|
||||
"--split",
|
||||
">_<4987",
|
||||
"-xc",
|
||||
"7>_<4987./packageSkyline/pages/flutter/half-page/index.wxml>_<49873>_<4987navigation-bar>_<4987page-scroll>_<4987mp-navigation-bar>_<4987./packageSkyline/pages/flutter/scale-page/index.wxml>_<49873>_<4987navigation-bar>_<4987page-scroll>_<4987mp-navigation-bar>_<4987./packageSkyline/pages/share-element/card/index.wxml>_<49873>_<4987navigation-bar>_<4987page-scroll>_<4987mp-navigation-bar>_<4987./packageSkyline/pages/share-element/list/index.wxml>_<49873>_<4987navigation-bar>_<4987page-scroll>_<4987mp-navigation-bar>_<4987./packageSkyline/pages/worklet/animation/index.wxml>_<49873>_<4987navigation-bar>_<4987page-scroll>_<4987mp-navigation-bar>_<4987./packageSkyline/pages/worklet/bottom-sheet/index.wxml>_<49873>_<4987navigation-bar>_<4987page-scroll>_<4987mp-navigation-bar>_<4987./packageSkyline/pages/worklet/gesture/index.wxml>_<49873>_<4987navigation-bar>_<4987page-scroll>_<4987mp-navigation-bar",
|
||||
"./common/foot.wxml",
|
||||
"./common/head.wxml",
|
||||
"./component/navigation-bar/navigation-bar.wxml",
|
||||
"./components/navigation-bar/index.wxml",
|
||||
"./components/page-scroll/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
||||
"./page/API/index.wxml",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
||||
"./page/cloud/index.wxml",
|
||||
"./page/common/foot.wxml",
|
||||
"./page/common/head.wxml",
|
||||
"./page/component/index.wxml",
|
||||
"./page/extend/index.wxml",
|
||||
"./packageSkyline/pages/flutter/half-page/index.wxml",
|
||||
"./packageSkyline/pages/flutter/scale-page/index.wxml",
|
||||
"./packageSkyline/pages/share-element/card/index.wxml",
|
||||
"./packageSkyline/pages/share-element/list/index.wxml",
|
||||
"./packageSkyline/pages/worklet/animation/index.wxml",
|
||||
"./packageSkyline/pages/worklet/bottom-sheet/index.wxml",
|
||||
"./packageSkyline/pages/worklet/gesture/index.wxml",
|
||||
"-gn",
|
||||
"$7061636b616765536b796c696e652f",
|
||||
];
|
||||
const w = (await wine.wcc(args, projectPath)).replaceAll("\r\n", "\n");
|
||||
const n = await node.wcc(args, projectPath);
|
||||
const storagePath = path.resolve(
|
||||
__dirname,
|
||||
`miniprogram-demo/${this.test.title}`
|
||||
);
|
||||
try {
|
||||
fs.mkdirSync(storagePath, { recursive: true });
|
||||
} catch (error) {}
|
||||
fs.writeFileSync(`${storagePath}/wine-output.js`, w);
|
||||
fs.writeFileSync(`${storagePath}/node-output.js`, n);
|
||||
assert.equal(w, n);
|
||||
});
|
||||
it("组件 - skyline - 自定义路由", async function () {
|
||||
const projectPath = path.resolve(
|
||||
__dirname,
|
||||
"../../examples/miniprogram-demo/miniprogram/"
|
||||
);
|
||||
const args = [
|
||||
"-d",
|
||||
"--split",
|
||||
">_<9107",
|
||||
"-xc",
|
||||
"12>_<9107./component/navigation-bar/navigation-bar.wxml>_<91071>_<9107mp-navigation-bar>_<9107./components/navigation-bar/index.wxml>_<91071>_<9107mp-navigation-bar>_<9107./components/page-scroll/index.wxml>_<91071>_<9107mp-navigation-bar>_<9107./miniprogram_npm/miniprogram-barrage/index.wxml>_<91070>_<9107./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml>_<91070>_<9107./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml>_<91070>_<9107./miniprogram_npm/wxml-to-canvas/index.wxml>_<91070>_<9107./page/API/index.wxml>_<91072>_<9107set-tab-bar>_<9107mp-navigation-bar>_<9107./page/API/components/set-tab-bar/set-tab-bar.wxml>_<91071>_<9107mp-navigation-bar>_<9107./page/cloud/index.wxml>_<91071>_<9107mp-navigation-bar>_<9107./page/component/index.wxml>_<91071>_<9107mp-navigation-bar>_<9107./page/extend/index.wxml>_<91071>_<9107mp-navigation-bar",
|
||||
"./common/foot.wxml",
|
||||
"./common/head.wxml",
|
||||
"./component/navigation-bar/navigation-bar.wxml",
|
||||
"./components/navigation-bar/index.wxml",
|
||||
"./components/page-scroll/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
||||
"./page/API/index.wxml",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
||||
"./page/cloud/index.wxml",
|
||||
"./page/common/foot.wxml",
|
||||
"./page/common/head.wxml",
|
||||
"./page/component/index.wxml",
|
||||
"./page/extend/index.wxml",
|
||||
"-gn",
|
||||
"$gwx",
|
||||
];
|
||||
const w = (await wine.wcc(args, projectPath)).replaceAll("\r\n", "\n");
|
||||
const n = await node.wcc(args, projectPath);
|
||||
const storagePath = path.resolve(
|
||||
__dirname,
|
||||
`miniprogram-demo/${this.test.title}`
|
||||
);
|
||||
try {
|
||||
fs.mkdirSync(storagePath, { recursive: true });
|
||||
} catch (error) {}
|
||||
fs.writeFileSync(`${storagePath}/wine-output.js`, w);
|
||||
fs.writeFileSync(`${storagePath}/node-output.js`, n);
|
||||
assert.equal(w, n);
|
||||
});
|
||||
it("组件 - skyline - 自定义路由 -2", async function () {
|
||||
const projectPath = path.resolve(
|
||||
__dirname,
|
||||
"../../examples/miniprogram-demo/miniprogram/"
|
||||
);
|
||||
const args = [
|
||||
"-d",
|
||||
"--split",
|
||||
">_<657",
|
||||
"-xc",
|
||||
"7>_<657./packageSkyline/pages/flutter/half-page/index.wxml>_<6573>_<657navigation-bar>_<657page-scroll>_<657mp-navigation-bar>_<657./packageSkyline/pages/flutter/scale-page/index.wxml>_<6573>_<657navigation-bar>_<657page-scroll>_<657mp-navigation-bar>_<657./packageSkyline/pages/share-element/card/index.wxml>_<6573>_<657navigation-bar>_<657page-scroll>_<657mp-navigation-bar>_<657./packageSkyline/pages/share-element/list/index.wxml>_<6573>_<657navigation-bar>_<657page-scroll>_<657mp-navigation-bar>_<657./packageSkyline/pages/worklet/animation/index.wxml>_<6573>_<657navigation-bar>_<657page-scroll>_<657mp-navigation-bar>_<657./packageSkyline/pages/worklet/bottom-sheet/index.wxml>_<6573>_<657navigation-bar>_<657page-scroll>_<657mp-navigation-bar>_<657./packageSkyline/pages/worklet/gesture/index.wxml>_<6573>_<657navigation-bar>_<657page-scroll>_<657mp-navigation-bar",
|
||||
"./common/foot.wxml",
|
||||
"./common/head.wxml",
|
||||
"./component/navigation-bar/navigation-bar.wxml",
|
||||
"./components/navigation-bar/index.wxml",
|
||||
"./components/page-scroll/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxml",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxml",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxml",
|
||||
"./page/API/index.wxml",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxml",
|
||||
"./page/cloud/index.wxml",
|
||||
"./page/common/foot.wxml",
|
||||
"./page/common/head.wxml",
|
||||
"./page/component/index.wxml",
|
||||
"./page/extend/index.wxml",
|
||||
"./packageSkyline/pages/flutter/half-page/index.wxml",
|
||||
"./packageSkyline/pages/flutter/scale-page/index.wxml",
|
||||
"./packageSkyline/pages/share-element/card/index.wxml",
|
||||
"./packageSkyline/pages/share-element/list/index.wxml",
|
||||
"./packageSkyline/pages/worklet/animation/index.wxml",
|
||||
"./packageSkyline/pages/worklet/bottom-sheet/index.wxml",
|
||||
"./packageSkyline/pages/worklet/gesture/index.wxml",
|
||||
"-gn",
|
||||
"$7061636b616765536b796c696e652f",
|
||||
];
|
||||
const w = (await wine.wcc(args, projectPath)).replaceAll("\r\n", "\n");
|
||||
const n = await node.wcc(args, projectPath);
|
||||
const storagePath = path.resolve(
|
||||
__dirname,
|
||||
`miniprogram-demo/${this.test.title}`
|
||||
);
|
||||
try {
|
||||
fs.mkdirSync(storagePath, { recursive: true });
|
||||
} catch (error) {}
|
||||
fs.writeFileSync(`${storagePath}/wine-output.js`, w);
|
||||
fs.writeFileSync(`${storagePath}/node-output.js`, n);
|
||||
assert.equal(w, n);
|
||||
});
|
||||
});
|
||||
});
|
81
test/spec/wcsc/ll/ll.spec1.ts
Normal file
81
test/spec/wcsc/ll/ll.spec1.ts
Normal file
@ -0,0 +1,81 @@
|
||||
import assert from "assert";
|
||||
import path from "path";
|
||||
import node from '../../../runner/node'
|
||||
import wine from '../../../runner/wine'
|
||||
import * as fs from 'fs'
|
||||
|
||||
describe("wcsc", function () {
|
||||
describe("LazyLoad: node output should deep equal with wine", function () {
|
||||
// afterEach(function(){
|
||||
// if(this.currentTest.state === 'failed'){
|
||||
// console.error('failed', this.currentTest)
|
||||
// }
|
||||
// })
|
||||
it("主界面", async function () {
|
||||
const projectPath = path.resolve(
|
||||
__dirname,
|
||||
"../../examples/miniprogram-demo/miniprogram"
|
||||
);
|
||||
const args: string[] = [
|
||||
"-db",
|
||||
"-pc",
|
||||
"12",
|
||||
"./page/component/index.wxss",
|
||||
"./page/API/index.wxss",
|
||||
"./page/cloud/index.wxss",
|
||||
"./page/extend/index.wxss",
|
||||
"./component/navigation-bar/navigation-bar.wxss",
|
||||
"./components/navigation-bar/index.wxss",
|
||||
"./components/page-scroll/index.wxss",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxss",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxss",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxss",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxss",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxss",
|
||||
"./app.wxss",
|
||||
"./common/common-skyline.wxss",
|
||||
"./common/reset.wxss",
|
||||
"./common/lib/weui.wxss",
|
||||
"./page/common/index-skyline.wxss",
|
||||
"-ll",
|
||||
];
|
||||
const w = JSON.parse(await wine.wcsc(args, projectPath));
|
||||
const n = JSON.parse(await node.wcsc(args, projectPath));
|
||||
const storagePath = path.resolve(__dirname, `miniprogram-demo/${this.test?.title}`)
|
||||
try {
|
||||
fs.mkdirSync(storagePath, {recursive: true});
|
||||
} catch (error) {}
|
||||
fs.writeFileSync(
|
||||
`${storagePath}/wine-output.json`,
|
||||
JSON.stringify(w, null, 4)
|
||||
);
|
||||
fs.writeFileSync(
|
||||
`${storagePath}/node-output.json`,
|
||||
JSON.stringify(n, null, 4)
|
||||
);
|
||||
assert.deepEqual(w, n);
|
||||
});
|
||||
it("接口-设置界面标题", async function () {
|
||||
const projectPath = path.resolve(
|
||||
__dirname,
|
||||
"../../examples/miniprogram-demo/miniprogram/"
|
||||
);
|
||||
const args = ["-db","-pc","74","./packageAPI/pages/api/login/login.wxss","./packageAPI/pages/api/get-user-info/get-user-info.wxss","./packageAPI/pages/api/request-payment/request-payment.wxss","./packageAPI/pages/api/jump/jump.wxss","./packageAPI/pages/api/share/share.wxss","./packageAPI/pages/api/share-button/share-button.wxss","./packageAPI/pages/api/custom-message/custom-message.wxss","./packageAPI/pages/api/subscribe-message/subscribe-message.wxss","./packageAPI/pages/api/choose-address/choose-address.wxss","./packageAPI/pages/api/choose-invoice-title/choose-invoice-title.wxss","./packageAPI/pages/api/soter-authentication/soter-authentication.wxss","./packageAPI/pages/api/setting/setting.wxss","./packageAPI/pages/ar/visionkit-basic/visionkit-basic.wxss","./packageAPI/pages/ar/plane-ar/plane-ar.wxss","./packageAPI/pages/ar/2dmarker-ar/2dmarker-ar.wxss","./packageAPI/pages/ar/osd-ar/osd-ar.wxss","./packageAPI/pages/page/set-navigation-bar-title/set-navigation-bar-title.wxss","./packageAPI/pages/page/navigation-bar-loading/navigation-bar-loading.wxss","./packageAPI/pages/page/navigator/navigator.wxss","./packageAPI/pages/page/pull-down-refresh/pull-down-refresh.wxss","./packageAPI/pages/page/animation/animation.wxss","./packageAPI/pages/page/action-sheet/action-sheet.wxss","./packageAPI/pages/page/modal/modal.wxss","./packageAPI/pages/page/toast/toast.wxss","./packageAPI/pages/page/canvas/canvas.wxss","./packageAPI/pages/page/get-wxml-node-info/get-wxml-node-info.wxss","./packageAPI/pages/page/page-scroll/page-scroll.wxss","./packageAPI/pages/page/intersection-observer/intersection-observer.wxss","./packageAPI/pages/device/clipboard-data/clipboard-data.wxss","./packageAPI/pages/device/bluetooth/bluetooth.wxss","./packageAPI/pages/device/bluetooth/slave/slave.wxss","./packageAPI/pages/device/screen-brightness/screen-brightness.wxss","./packageAPI/pages/device/vibrate/vibrate.wxss","./packageAPI/pages/device/add-contact/add-contact.wxss","./packageAPI/pages/device/wifi/wifi.wxss","./packageAPI/pages/device/get-network-type/get-network-type.wxss","./packageAPI/pages/device/on-network-status-change/on-network-status-change.wxss","./packageAPI/pages/device/get-system-info/get-system-info.wxss","./packageAPI/pages/device/on-compass-change/on-compass-change.wxss","./packageAPI/pages/device/make-phone-call/make-phone-call.wxss","./packageAPI/pages/device/scan-code/scan-code.wxss","./packageAPI/pages/device/on-accelerometer-change/on-accelerometer-change.wxss","./packageAPI/pages/device/capture-screen/capture-screen.wxss","./packageAPI/pages/device/ibeacon/ibeacon.wxss","./packageAPI/pages/device/get-battery-info/get-battery-info.wxss","./packageAPI/pages/media/image/image.wxss","./packageAPI/pages/media/voice/voice.wxss","./packageAPI/pages/media/file/file.wxss","./packageAPI/pages/media/load-font-face/load-font-face.wxss","./packageAPI/pages/media/background-audio/background-audio.wxss","./packageAPI/pages/media/video/video.wxss","./packageAPI/pages/media/audio/audio.wxss","./packageAPI/pages/media/media-container/media-container.wxss","./packageAPI/pages/location/get-location/get-location.wxss","./packageAPI/pages/location/open-location/open-location.wxss","./packageAPI/pages/location/choose-location/choose-location.wxss","./packageAPI/pages/network/request/request.wxss","./packageAPI/pages/network/web-socket/web-socket.wxss","./packageAPI/pages/network/upload-file/upload-file.wxss","./packageAPI/pages/network/download-file/download-file.wxss","./packageAPI/pages/network/mdns/mdns.wxss","./packageAPI/pages/network/udp-socket/udp-socket.wxss","./packageAPI/pages/storage/storage/storage.wxss","./packageAPI/pages/storage/get-background-fetch-data/get-background-fetch-data.wxss","./packageAPI/pages/storage/get-background-prefetch-data/get-background-prefetch-data.wxss","./packageAPI/pages/performance/get-performance/get-performance.wxss","./packageAPI/pages/worker/worker/worker.wxss","./packageAPI/pages/framework/two-way-bindings/two-way-bindings.wxss","./packageAPI/pages/framework/wxs/wxs.wxss","./packageAPI/pages/framework/resizable/resizable.wxss","./packageAPI/pages/framework/wxs/movable.wxss","./packageAPI/pages/framework/wxs/sidebar.wxss","./packageAPI/pages/framework/wxs/stick-top.wxss","./packageAPI/pages/framework/wxs/nearby.wxss","./app.wxss","./common/common-skyline.wxss","./common/reset.wxss","./common/lib/weui.wxss","./component/navigation-bar/navigation-bar.wxss","./components/navigation-bar/index.wxss","./components/page-scroll/index.wxss","./page/API/index.wxss","./page/API/components/set-tab-bar/set-tab-bar.wxss","./page/cloud/index.wxss","./page/common/index-skyline.wxss","./page/component/index.wxss","./page/extend/index.wxss","./miniprogram_npm/miniprogram-barrage/index.wxss","./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxss","./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxss","./miniprogram_npm/wxml-to-canvas/index.wxss","--subpackage","packageAPI","-ll"]
|
||||
const w = JSON.parse(await wine.wcsc(args, projectPath));
|
||||
const n = JSON.parse(await node.wcsc(args, projectPath));
|
||||
const storagePath = path.resolve(__dirname, `miniprogram-demo/${this.test?.title}`)
|
||||
try {
|
||||
fs.mkdirSync(storagePath, {recursive: true});
|
||||
} catch (error) {}
|
||||
fs.writeFileSync(
|
||||
`${storagePath}/wine-output.json`,
|
||||
JSON.stringify(w, null, 4)
|
||||
);
|
||||
fs.writeFileSync(
|
||||
`${storagePath}/node-output.json`,
|
||||
JSON.stringify(n, null, 4)
|
||||
);
|
||||
assert.deepEqual(w, n);
|
||||
});
|
||||
});
|
||||
});
|
185
test/spec/wcsc/raw/raw.test.js
Normal file
185
test/spec/wcsc/raw/raw.test.js
Normal file
@ -0,0 +1,185 @@
|
||||
const assert = require("assert");
|
||||
const node = require("../../runner/node");
|
||||
const wine = require("../../runner/wine");
|
||||
const path = require("path");
|
||||
const fs = require("fs");
|
||||
|
||||
describe("wcsc", function () {
|
||||
describe("Raw: node output should equal with wine", function () {
|
||||
// afterEach(function(){
|
||||
// if(this.currentTest.state === 'failed'){
|
||||
// console.error('failed', this.currentTest)
|
||||
// }
|
||||
// })
|
||||
it("主界面", async function () {
|
||||
const projectPath = path.resolve(
|
||||
__dirname,
|
||||
"../../examples/miniprogram-demo/miniprogram"
|
||||
);
|
||||
const args = [
|
||||
"-db",
|
||||
"-pc",
|
||||
"12",
|
||||
"./page/component/index.wxss",
|
||||
"./page/API/index.wxss",
|
||||
"./page/cloud/index.wxss",
|
||||
"./page/extend/index.wxss",
|
||||
"./component/navigation-bar/navigation-bar.wxss",
|
||||
"./components/navigation-bar/index.wxss",
|
||||
"./components/page-scroll/index.wxss",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxss",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxss",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxss",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxss",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxss",
|
||||
"./app.wxss",
|
||||
"./common/common-skyline.wxss",
|
||||
"./common/reset.wxss",
|
||||
"./common/lib/weui.wxss",
|
||||
"./page/common/index-skyline.wxss",
|
||||
// "-ll",
|
||||
];
|
||||
const w = await wine.wcsc(args, projectPath);
|
||||
const n = await node.wcsc(args, projectPath);
|
||||
const storagePath = path.resolve(
|
||||
__dirname,
|
||||
`miniprogram-demo/${this.test.title}`
|
||||
);
|
||||
try {
|
||||
fs.mkdirSync(storagePath, { recursive: true });
|
||||
} catch (error) {}
|
||||
fs.writeFileSync(
|
||||
`${storagePath}/wine-output.js`,
|
||||
w
|
||||
);
|
||||
fs.writeFileSync(
|
||||
`${storagePath}/node-output.js`,
|
||||
n
|
||||
);
|
||||
assert.equal(w, n);
|
||||
});
|
||||
it("接口-设置界面标题", async function () {
|
||||
const projectPath = path.resolve(
|
||||
__dirname,
|
||||
"../../examples/miniprogram-demo/miniprogram/"
|
||||
);
|
||||
const args = [
|
||||
"-db",
|
||||
"-pc",
|
||||
"74",
|
||||
"./packageAPI/pages/api/login/login.wxss",
|
||||
"./packageAPI/pages/api/get-user-info/get-user-info.wxss",
|
||||
"./packageAPI/pages/api/request-payment/request-payment.wxss",
|
||||
"./packageAPI/pages/api/jump/jump.wxss",
|
||||
"./packageAPI/pages/api/share/share.wxss",
|
||||
"./packageAPI/pages/api/share-button/share-button.wxss",
|
||||
"./packageAPI/pages/api/custom-message/custom-message.wxss",
|
||||
"./packageAPI/pages/api/subscribe-message/subscribe-message.wxss",
|
||||
"./packageAPI/pages/api/choose-address/choose-address.wxss",
|
||||
"./packageAPI/pages/api/choose-invoice-title/choose-invoice-title.wxss",
|
||||
"./packageAPI/pages/api/soter-authentication/soter-authentication.wxss",
|
||||
"./packageAPI/pages/api/setting/setting.wxss",
|
||||
"./packageAPI/pages/ar/visionkit-basic/visionkit-basic.wxss",
|
||||
"./packageAPI/pages/ar/plane-ar/plane-ar.wxss",
|
||||
"./packageAPI/pages/ar/2dmarker-ar/2dmarker-ar.wxss",
|
||||
"./packageAPI/pages/ar/osd-ar/osd-ar.wxss",
|
||||
"./packageAPI/pages/page/set-navigation-bar-title/set-navigation-bar-title.wxss",
|
||||
"./packageAPI/pages/page/navigation-bar-loading/navigation-bar-loading.wxss",
|
||||
"./packageAPI/pages/page/navigator/navigator.wxss",
|
||||
"./packageAPI/pages/page/pull-down-refresh/pull-down-refresh.wxss",
|
||||
"./packageAPI/pages/page/animation/animation.wxss",
|
||||
"./packageAPI/pages/page/action-sheet/action-sheet.wxss",
|
||||
"./packageAPI/pages/page/modal/modal.wxss",
|
||||
"./packageAPI/pages/page/toast/toast.wxss",
|
||||
"./packageAPI/pages/page/canvas/canvas.wxss",
|
||||
"./packageAPI/pages/page/get-wxml-node-info/get-wxml-node-info.wxss",
|
||||
"./packageAPI/pages/page/page-scroll/page-scroll.wxss",
|
||||
"./packageAPI/pages/page/intersection-observer/intersection-observer.wxss",
|
||||
"./packageAPI/pages/device/clipboard-data/clipboard-data.wxss",
|
||||
"./packageAPI/pages/device/bluetooth/bluetooth.wxss",
|
||||
"./packageAPI/pages/device/bluetooth/slave/slave.wxss",
|
||||
"./packageAPI/pages/device/screen-brightness/screen-brightness.wxss",
|
||||
"./packageAPI/pages/device/vibrate/vibrate.wxss",
|
||||
"./packageAPI/pages/device/add-contact/add-contact.wxss",
|
||||
"./packageAPI/pages/device/wifi/wifi.wxss",
|
||||
"./packageAPI/pages/device/get-network-type/get-network-type.wxss",
|
||||
"./packageAPI/pages/device/on-network-status-change/on-network-status-change.wxss",
|
||||
"./packageAPI/pages/device/get-system-info/get-system-info.wxss",
|
||||
"./packageAPI/pages/device/on-compass-change/on-compass-change.wxss",
|
||||
"./packageAPI/pages/device/make-phone-call/make-phone-call.wxss",
|
||||
"./packageAPI/pages/device/scan-code/scan-code.wxss",
|
||||
"./packageAPI/pages/device/on-accelerometer-change/on-accelerometer-change.wxss",
|
||||
"./packageAPI/pages/device/capture-screen/capture-screen.wxss",
|
||||
"./packageAPI/pages/device/ibeacon/ibeacon.wxss",
|
||||
"./packageAPI/pages/device/get-battery-info/get-battery-info.wxss",
|
||||
"./packageAPI/pages/media/image/image.wxss",
|
||||
"./packageAPI/pages/media/voice/voice.wxss",
|
||||
"./packageAPI/pages/media/file/file.wxss",
|
||||
"./packageAPI/pages/media/load-font-face/load-font-face.wxss",
|
||||
"./packageAPI/pages/media/background-audio/background-audio.wxss",
|
||||
"./packageAPI/pages/media/video/video.wxss",
|
||||
"./packageAPI/pages/media/audio/audio.wxss",
|
||||
"./packageAPI/pages/media/media-container/media-container.wxss",
|
||||
"./packageAPI/pages/location/get-location/get-location.wxss",
|
||||
"./packageAPI/pages/location/open-location/open-location.wxss",
|
||||
"./packageAPI/pages/location/choose-location/choose-location.wxss",
|
||||
"./packageAPI/pages/network/request/request.wxss",
|
||||
"./packageAPI/pages/network/web-socket/web-socket.wxss",
|
||||
"./packageAPI/pages/network/upload-file/upload-file.wxss",
|
||||
"./packageAPI/pages/network/download-file/download-file.wxss",
|
||||
"./packageAPI/pages/network/mdns/mdns.wxss",
|
||||
"./packageAPI/pages/network/udp-socket/udp-socket.wxss",
|
||||
"./packageAPI/pages/storage/storage/storage.wxss",
|
||||
"./packageAPI/pages/storage/get-background-fetch-data/get-background-fetch-data.wxss",
|
||||
"./packageAPI/pages/storage/get-background-prefetch-data/get-background-prefetch-data.wxss",
|
||||
"./packageAPI/pages/performance/get-performance/get-performance.wxss",
|
||||
"./packageAPI/pages/worker/worker/worker.wxss",
|
||||
"./packageAPI/pages/framework/two-way-bindings/two-way-bindings.wxss",
|
||||
"./packageAPI/pages/framework/wxs/wxs.wxss",
|
||||
"./packageAPI/pages/framework/resizable/resizable.wxss",
|
||||
"./packageAPI/pages/framework/wxs/movable.wxss",
|
||||
"./packageAPI/pages/framework/wxs/sidebar.wxss",
|
||||
"./packageAPI/pages/framework/wxs/stick-top.wxss",
|
||||
"./packageAPI/pages/framework/wxs/nearby.wxss",
|
||||
"./app.wxss",
|
||||
"./common/common-skyline.wxss",
|
||||
"./common/reset.wxss",
|
||||
"./common/lib/weui.wxss",
|
||||
"./component/navigation-bar/navigation-bar.wxss",
|
||||
"./components/navigation-bar/index.wxss",
|
||||
"./components/page-scroll/index.wxss",
|
||||
"./page/API/index.wxss",
|
||||
"./page/API/components/set-tab-bar/set-tab-bar.wxss",
|
||||
"./page/cloud/index.wxss",
|
||||
"./page/common/index-skyline.wxss",
|
||||
"./page/component/index.wxss",
|
||||
"./page/extend/index.wxss",
|
||||
"./miniprogram_npm/miniprogram-barrage/index.wxss",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-item.wxss",
|
||||
"./miniprogram_npm/miniprogram-recycle-view/recycle-view.wxss",
|
||||
"./miniprogram_npm/wxml-to-canvas/index.wxss",
|
||||
"--subpackage",
|
||||
"packageAPI",
|
||||
// "-ll",
|
||||
];
|
||||
const w = await wine.wcsc(args, projectPath);
|
||||
const n = await node.wcsc(args, projectPath);
|
||||
const storagePath = path.resolve(
|
||||
__dirname,
|
||||
`miniprogram-demo/${this.test.title}`
|
||||
);
|
||||
try {
|
||||
fs.mkdirSync(storagePath, { recursive: true });
|
||||
} catch (error) {}
|
||||
fs.writeFileSync(
|
||||
`${storagePath}/wine-output.js`,
|
||||
w
|
||||
);
|
||||
fs.writeFileSync(
|
||||
`${storagePath}/node-output.js`,
|
||||
n
|
||||
);
|
||||
assert.equal(w, n);
|
||||
});
|
||||
});
|
||||
});
|
@ -11,6 +11,6 @@ cd /mnt/d/Work/WeChatProjects/miniprogram-demo/miniprogram
|
||||
# /root/github/wx-compiler/build/wcc "--config-path" "/mnt/d/Work/disassembly/wcc-exec/wcc/config/$cmd.txt" > /root/github/wx-compiler/test/wcc_linux.json
|
||||
# /mnt/d/Work/disassembly/wcc-exec/wcc/wcc.exe "--config-path" "d:/Work/disassembly/wcc-exec/wcc/config/$cmd.txt" > /root/github/wx-compiler/test/wcc_win.json
|
||||
# done;
|
||||
|
||||
/root/github/wx-compiler/build/wcc "--config-path" "/mnt/d/Work/disassembly/wcc-exec/wcc/config/cmd2.txt" > /root/github/wx-compiler/test/wcc_linux.json
|
||||
/mnt/d/Work/disassembly/wcc-exec/wcc/wcc.exe "--config-path" "d:/Work/disassembly/wcc-exec/wcc/config/cmd2.txt" > /root/github/wx-compiler/test/wcc_win.json
|
||||
filename="llw2.txt"
|
||||
/root/github/wx-compiler/build/wcc "--config-path" "/mnt/d/Work/disassembly/wcc-exec/wcc/config/$filename" > /root/github/wx-compiler/test/wcc_linux.json
|
||||
/mnt/d/Work/disassembly/wcc-exec/wcc/wcc.exe "--config-path" "d:/Work/disassembly/wcc-exec/wcc/config/$filename" > /root/github/wx-compiler/test/wcc_win.json
|
||||
|
Loading…
x
Reference in New Issue
Block a user