diff --git a/.vscode/launch.json b/.vscode/launch.json index 954093c..5efffa2 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -12,10 +12,10 @@ "program": "${workspaceFolder}/build/wcc", "args": [ "\"--config-path\"", - "\"/mnt/d/Work/WeChatProjects/issue/97/wcc-cmd2.txt\"" + "\"/home/msojocs/github/wx-compiler/test/spec/issue/102/case1.txt\"" ], "stopAtEntry": false, - "cwd": "/mnt/d/Work/WeChatProjects/issue/97/ThorUI-applets-vip", + "cwd": "/home/msojocs/github/wx-compiler/test/spec/issue/102/wxapp", "environment": [], "externalConsole": false, "MIMode": "gdb", diff --git a/.vscode/settings.json b/.vscode/settings.json index 53d9684..e7045df 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -57,18 +57,18 @@ "variant": "cpp" }, "cmake.debugConfig": { - "cwd": "/mnt/d/Work/WeChatProjects/issue/97/ThorUI-applets-vip", + "cwd": "/home/msojocs/github/wx-compiler/test/spec/issue/102/wxapp", "args": [ "\"--config-path\"", - "\"/mnt/d/Work/WeChatProjects/issue/97/wcc-cmd2.txt\"" + "\"/home/msojocs/github/wx-compiler/test/spec/issue/102/case1.txt\"" ] }, "cmake.configureSettings": { - "CMAKE_TOOLCHAIN_FILE": "/root/vcpkg/scripts/buildsystems/vcpkg.cmake" + "CMAKE_TOOLCHAIN_FILE": "/home/msojocs/github/vcpkg/scripts/buildsystems/vcpkg.cmake" }, "clangd.arguments": [ "--background-index", "--compile-commands-dir=${workspaceFolder}/build/" ], - "cmake.sourceDirectory": "/root/github/wx-compiler" + "cmake.sourceDirectory": "/home/msojocs/github/wx-compiler" } \ No newline at end of file diff --git a/src/wxml/compiler.cpp b/src/wxml/compiler.cpp index b2060e9..85a5b4d 100644 --- a/src/wxml/compiler.cpp +++ b/src/wxml/compiler.cpp @@ -1510,6 +1510,7 @@ namespace WXML{ int v167 = v281->GetStrID(i->first); v317 << v167 << "]]={f:" << v314 << ",j:[],i:[],ti:["; auto v171 = i->second->offset_72; + bool isNeedComma = false; for (int j = 0; j < v171.size(); j++) { auto cur = v171[j]; @@ -1517,7 +1518,7 @@ namespace WXML{ { if (cur->offset_48.find("src") != cur->offset_48.end()) { - if (j) + if (isNeedComma) { v317 << ","; } @@ -1526,10 +1527,12 @@ namespace WXML{ auto v173 = v172->second.ToAttrContent(); int v174 = v281->GetStrID(v173); v317 << v174 << "]"; + isNeedComma = true; } } } v317 << "],ic:["; + isNeedComma = false; for (int jj = 0; jj < i->second->offset_72.size(); jj++) { auto cur = i->second->offset_72[jj]; @@ -1538,13 +1541,15 @@ namespace WXML{ auto src = cur->offset_48.find("src"); if (src != cur->offset_48.end()) { - if (jj) + if (isNeedComma) { v317 << ","; } + v317 << "x["; auto v178 = src->second.ToAttrContent(); int v179 = v281->GetStrID(v178); v317 << v179 << "]"; + isNeedComma = true; } } } diff --git a/src/wxml/dom_lib/token.cpp b/src/wxml/dom_lib/token.cpp index b400c63..d6d3bbc 100644 --- a/src/wxml/dom_lib/token.cpp +++ b/src/wxml/dom_lib/token.cpp @@ -254,12 +254,13 @@ namespace WXML if ( v5 <= 'Z'/*90*/ ) continue; if ( v5 != '_' ) - return 0; + return false; + continue; } if ( v5 <= '/'/*47*/ ) { if ( v5 != '$' ) - return 0; + return false; continue; } v6 = v5 <= '9'/*57*/; diff --git a/test/spec/issue/102/.gitignore b/test/spec/issue/102/.gitignore new file mode 100644 index 0000000..76eaea7 --- /dev/null +++ b/test/spec/issue/102/.gitignore @@ -0,0 +1 @@ +wxapp \ No newline at end of file diff --git a/test/spec/issue/102/case1.txt b/test/spec/issue/102/case1.txt new file mode 100644 index 0000000..c9a9bb0 --- /dev/null +++ b/test/spec/issue/102/case1.txt @@ -0,0 +1,150 @@ +-ds +-d +--split +>_<4815 +-xc +74>_<4815./friendcoupon/index.wxml>_<48150>_<4815./pages/auth/index.wxml>_<48150>_<4815./pages/creditshop/comment/index.wxml>_<48150>_<4815./pages/creditshop/create/index.wxml>_<48150>_<4815./pages/creditshop/creditlog/index.wxml>_<48150>_<4815./pages/creditshop/detail/index.wxml>_<48150>_<4815./pages/creditshop/express/index.wxml>_<48150>_<4815./pages/creditshop/index.wxml>_<48150>_<4815./pages/creditshop/lists/index.wxml>_<48150>_<4815./pages/creditshop/log/detail/index.wxml>_<48150>_<4815./pages/creditshop/log/index.wxml>_<48150>_<4815./pages/creditshop/verify/index.wxml>_<48150>_<4815./pages/custom/index.wxml>_<48150>_<4815./pages/goods/detail/index.wxml>_<48151>_<4815share-button>_<4815./pages/goods/index/index.wxml>_<48150>_<4815./pages/goods/package/detail/index.wxml>_<48150>_<4815./pages/goods/package/index.wxml>_<48150>_<4815./pages/goods/poster/poster.wxml>_<48150>_<4815./pages/goods/region/index.wxml>_<48150>_<4815./pages/index/index.wxml>_<48150>_<4815./pages/login/privacy_agreement/privacy_agreement.wxml>_<48150>_<4815./pages/login/user_terms/user_terms.wxml>_<48150>_<4815./pages/map/index.wxml>_<48150>_<4815./pages/member/address/index.wxml>_<48150>_<4815./pages/member/address/post.wxml>_<48150>_<4815./pages/member/address/select.wxml>_<48150>_<4815./pages/member/bind/index.wxml>_<48150>_<4815./pages/member/cart/index.wxml>_<48150>_<4815./pages/member/favorite/index.wxml>_<48150>_<4815./pages/member/history/index.wxml>_<48150>_<4815./pages/member/index/index.wxml>_<48150>_<4815./pages/member/info/index.wxml>_<48150>_<4815./pages/member/log/index.wxml>_<48150>_<4815./pages/member/membercard/detail/index.wxml>_<48150>_<4815./pages/member/membercard/index.wxml>_<48150>_<4815./pages/member/membercard/pay/index.wxml>_<48150>_<4815./pages/member/middlejump/middlejump.wxml>_<48150>_<4815./pages/member/recharge/index.wxml>_<48150>_<4815./pages/member/withdraw/index.wxml>_<48150>_<4815./pages/message/auth/index.wxml>_<48150>_<4815./pages/order/comment/index.wxml>_<48150>_<4815./pages/order/create/index.wxml>_<48150>_<4815./pages/order/cycle/address.wxml>_<48150>_<4815./pages/order/cycle/index.wxml>_<48150>_<4815./pages/order/cycle/order.wxml>_<48150>_<4815./pages/order/detail/index.wxml>_<48150>_<4815./pages/order/express/index.wxml>_<48150>_<4815./pages/order/express/number.wxml>_<48150>_<4815./pages/order/index.wxml>_<48150>_<4815./pages/order/pay/coupons/coupons.wxml>_<48150>_<4815./pages/order/pay/index.wxml>_<48150>_<4815./pages/order/pay/share/share.wxml>_<48150>_<4815./pages/order/refund/index.wxml>_<48150>_<4815./pages/order/singlerefund/index.wxml>_<48150>_<4815./pages/order/store/index.wxml>_<48150>_<4815./pages/order/store/map.wxml>_<48150>_<4815./pages/public/coupon/index.wxml>_<48150>_<4815./pages/quickbuy/index.wxml>_<48150>_<4815./pages/sale/coupon/detail/index.wxml>_<48150>_<4815./pages/sale/coupon/index/index.wxml>_<48150>_<4815./pages/sale/coupon/my/detail/index.wxml>_<48150>_<4815./pages/sale/coupon/my/index/index.wxml>_<48150>_<4815./pages/sale/coupon/my/list/index.wxml>_<48150>_<4815./pages/sale/coupon/my/showcoupons2/index.wxml>_<48150>_<4815./pages/shop/caregory/index.wxml>_<48150>_<4815./pages/shop/notice/detail/detail.wxml>_<48150>_<4815./pages/shop/notice/index/index.wxml>_<48150>_<4815./pages/transfer/bargain/index.wxml>_<48150>_<4815./pages/transfer/commission/index.wxml>_<48150>_<4815./pages/transfer/groups/index.wxml>_<48150>_<4815./pages/transfer/seckill/index.wxml>_<48150>_<4815./pages/verifygoods/detail/index.wxml>_<48150>_<4815./pages/verifygoods/index.wxml>_<48150>_<4815./pages/web/index.wxml>_<48150 +./friendcoupon/index.wxml +./pages/auth/index.wxml +./pages/common/act-picker.wxml +./pages/common/city-picker.wxml +./pages/common/copyright.wxml +./pages/common/coupon-picker.wxml +./pages/common/diyform.wxml +./pages/common/diyform_view.wxml +./pages/common/gift-picker.wxml +./pages/common/goods-picker.wxml +./pages/common/menu.wxml +./pages/creditshop/comment/index.wxml +./pages/creditshop/create/index.wxml +./pages/creditshop/creditlog/index.wxml +./pages/creditshop/detail/index.wxml +./pages/creditshop/express/index.wxml +./pages/creditshop/index.wxml +./pages/creditshop/lists/index.wxml +./pages/creditshop/log/detail/index.wxml +./pages/creditshop/log/index.wxml +./pages/creditshop/verify/index.wxml +./pages/custom/index.wxml +./pages/date/date.wxml +./pages/diy/index.wxml +./pages/diy/template/tpl.wxml +./pages/diy/template/tpl_audio.wxml +./pages/diy/template/tpl_banner.wxml +./pages/diy/template/tpl_bindmobile.wxml +./pages/diy/template/tpl_blank.wxml +./pages/diy/template/tpl_copyright.wxml +./pages/diy/template/tpl_coupon.wxml +./pages/diy/template/tpl_detail_buyshow.wxml +./pages/diy/template/tpl_detail_comment.wxml +./pages/diy/template/tpl_detail_info.wxml +./pages/diy/template/tpl_detail_navbar.wxml +./pages/diy/template/tpl_detail_package.wxml +./pages/diy/template/tpl_detail_sale.wxml +./pages/diy/template/tpl_detail_seckill.wxml +./pages/diy/template/tpl_detail_shop.wxml +./pages/diy/template/tpl_detail_spec.wxml +./pages/diy/template/tpl_detail_swipe.wxml +./pages/diy/template/tpl_fixedsearch.wxml +./pages/diy/template/tpl_goods.wxml +./pages/diy/template/tpl_groupsgoods.wxml +./pages/diy/template/tpl_icongroup.wxml +./pages/diy/template/tpl_line.wxml +./pages/diy/template/tpl_listmenu.wxml +./pages/diy/template/tpl_memberhead.wxml +./pages/diy/template/tpl_menu.wxml +./pages/diy/template/tpl_menu2.wxml +./pages/diy/template/tpl_merchgroup.wxml +./pages/diy/template/tpl_notice.wxml +./pages/diy/template/tpl_picture.wxml +./pages/diy/template/tpl_pictures.wxml +./pages/diy/template/tpl_picturew.wxml +./pages/diy/template/tpl_richtext.wxml +./pages/diy/template/tpl_search.wxml +./pages/diy/template/tpl_seckill_advs.wxml +./pages/diy/template/tpl_seckill_list.wxml +./pages/diy/template/tpl_seckill_rooms.wxml +./pages/diy/template/tpl_seckill_times.wxml +./pages/diy/template/tpl_seckillgroup.wxml +./pages/diy/template/tpl_tabbar.wxml +./pages/diy/template/tpl_tabbarlist.wxml +./pages/diy/template/tpl_tablist.wxml +./pages/diy/template/tpl_title.wxml +./pages/diy/template/tpl_topmenu.wxml +./pages/diy/template/tpl_verifygoods.wxml +./pages/diy/template/tpl_video.wxml +./pages/goods/detail/index.wxml +./pages/goods/index/index.wxml +./pages/goods/package/detail/index.wxml +./pages/goods/package/index.wxml +./pages/goods/poster/poster.wxml +./pages/goods/region/index.wxml +./pages/index/adv.wxml +./pages/index/adver.wxml +./pages/index/banner.wxml +./pages/index/coupontips.wxml +./pages/index/cube.wxml +./pages/index/index.wxml +./pages/index/nav.wxml +./pages/index/notice.wxml +./pages/index/recommand.wxml +./pages/index/search.wxml +./pages/login/privacy_agreement/privacy_agreement.wxml +./pages/login/user_terms/user_terms.wxml +./pages/map/index.wxml +./pages/member/address/index.wxml +./pages/member/address/post.wxml +./pages/member/address/select.wxml +./pages/member/bind/index.wxml +./pages/member/cart/index.wxml +./pages/member/favorite/index.wxml +./pages/member/history/index.wxml +./pages/member/index/index.wxml +./pages/member/info/index.wxml +./pages/member/log/index.wxml +./pages/member/membercard/detail/index.wxml +./pages/member/membercard/index.wxml +./pages/member/membercard/pay/index.wxml +./pages/member/middlejump/middlejump.wxml +./pages/member/recharge/index.wxml +./pages/member/withdraw/index.wxml +./pages/message/auth/index.wxml +./pages/order/comment/index.wxml +./pages/order/create/index.wxml +./pages/order/cycle/address.wxml +./pages/order/cycle/index.wxml +./pages/order/cycle/order.wxml +./pages/order/detail/index.wxml +./pages/order/express/index.wxml +./pages/order/express/number.wxml +./pages/order/index.wxml +./pages/order/pay/coupons/coupons.wxml +./pages/order/pay/index.wxml +./pages/order/pay/share/share.wxml +./pages/order/public/verify.wxml +./pages/order/refund/index.wxml +./pages/order/singlerefund/index.wxml +./pages/order/store/index.wxml +./pages/order/store/map.wxml +./pages/public/coupon/index.wxml +./pages/quickbuy/index.wxml +./pages/sale/coupon/detail/index.wxml +./pages/sale/coupon/index/index.wxml +./pages/sale/coupon/my/detail/index.wxml +./pages/sale/coupon/my/index/index.wxml +./pages/sale/coupon/my/list/index.wxml +./pages/sale/coupon/my/showcoupons2/index.wxml +./pages/shop/caregory/index.wxml +./pages/shop/notice/detail/detail.wxml +./pages/shop/notice/index/index.wxml +./pages/transfer/bargain/index.wxml +./pages/transfer/commission/index.wxml +./pages/transfer/groups/index.wxml +./pages/transfer/seckill/index.wxml +./pages/verifygoods/detail/index.wxml +./pages/verifygoods/index.wxml +./pages/web/index.wxml +./utils/wxParse/wxParse.wxml +./utils/price.wxs +-gn +$gwx \ No newline at end of file diff --git a/test/spec/issue/102/issue102.spec.ts b/test/spec/issue/102/issue102.spec.ts new file mode 100644 index 0000000..8aa9602 --- /dev/null +++ b/test/spec/issue/102/issue102.spec.ts @@ -0,0 +1,67 @@ +import assert from "assert" +import path from "path" +import linux from '../../../runner/linux' +import windows from '../../../runner/windows' +import * as fs from 'fs' + +describe("issue - 102", function () { + describe("issue: linux output should equal with wine", function () { + // afterEach(function(){ + // if(this.currentTest.state === 'failed'){ + // console.error('failed', this.currentTest) + // } + // }) + it("case1", async function () { + const projectPath = path.resolve( + __dirname, + "./wxapp" + ); + const args = ["-ds","-d","--split",">_<4815","-xc","74>_<4815./friendcoupon/index.wxml>_<48150>_<4815./pages/auth/index.wxml>_<48150>_<4815./pages/creditshop/comment/index.wxml>_<48150>_<4815./pages/creditshop/create/index.wxml>_<48150>_<4815./pages/creditshop/creditlog/index.wxml>_<48150>_<4815./pages/creditshop/detail/index.wxml>_<48150>_<4815./pages/creditshop/express/index.wxml>_<48150>_<4815./pages/creditshop/index.wxml>_<48150>_<4815./pages/creditshop/lists/index.wxml>_<48150>_<4815./pages/creditshop/log/detail/index.wxml>_<48150>_<4815./pages/creditshop/log/index.wxml>_<48150>_<4815./pages/creditshop/verify/index.wxml>_<48150>_<4815./pages/custom/index.wxml>_<48150>_<4815./pages/goods/detail/index.wxml>_<48151>_<4815share-button>_<4815./pages/goods/index/index.wxml>_<48150>_<4815./pages/goods/package/detail/index.wxml>_<48150>_<4815./pages/goods/package/index.wxml>_<48150>_<4815./pages/goods/poster/poster.wxml>_<48150>_<4815./pages/goods/region/index.wxml>_<48150>_<4815./pages/index/index.wxml>_<48150>_<4815./pages/login/privacy_agreement/privacy_agreement.wxml>_<48150>_<4815./pages/login/user_terms/user_terms.wxml>_<48150>_<4815./pages/map/index.wxml>_<48150>_<4815./pages/member/address/index.wxml>_<48150>_<4815./pages/member/address/post.wxml>_<48150>_<4815./pages/member/address/select.wxml>_<48150>_<4815./pages/member/bind/index.wxml>_<48150>_<4815./pages/member/cart/index.wxml>_<48150>_<4815./pages/member/favorite/index.wxml>_<48150>_<4815./pages/member/history/index.wxml>_<48150>_<4815./pages/member/index/index.wxml>_<48150>_<4815./pages/member/info/index.wxml>_<48150>_<4815./pages/member/log/index.wxml>_<48150>_<4815./pages/member/membercard/detail/index.wxml>_<48150>_<4815./pages/member/membercard/index.wxml>_<48150>_<4815./pages/member/membercard/pay/index.wxml>_<48150>_<4815./pages/member/middlejump/middlejump.wxml>_<48150>_<4815./pages/member/recharge/index.wxml>_<48150>_<4815./pages/member/withdraw/index.wxml>_<48150>_<4815./pages/message/auth/index.wxml>_<48150>_<4815./pages/order/comment/index.wxml>_<48150>_<4815./pages/order/create/index.wxml>_<48150>_<4815./pages/order/cycle/address.wxml>_<48150>_<4815./pages/order/cycle/index.wxml>_<48150>_<4815./pages/order/cycle/order.wxml>_<48150>_<4815./pages/order/detail/index.wxml>_<48150>_<4815./pages/order/express/index.wxml>_<48150>_<4815./pages/order/express/number.wxml>_<48150>_<4815./pages/order/index.wxml>_<48150>_<4815./pages/order/pay/coupons/coupons.wxml>_<48150>_<4815./pages/order/pay/index.wxml>_<48150>_<4815./pages/order/pay/share/share.wxml>_<48150>_<4815./pages/order/refund/index.wxml>_<48150>_<4815./pages/order/singlerefund/index.wxml>_<48150>_<4815./pages/order/store/index.wxml>_<48150>_<4815./pages/order/store/map.wxml>_<48150>_<4815./pages/public/coupon/index.wxml>_<48150>_<4815./pages/quickbuy/index.wxml>_<48150>_<4815./pages/sale/coupon/detail/index.wxml>_<48150>_<4815./pages/sale/coupon/index/index.wxml>_<48150>_<4815./pages/sale/coupon/my/detail/index.wxml>_<48150>_<4815./pages/sale/coupon/my/index/index.wxml>_<48150>_<4815./pages/sale/coupon/my/list/index.wxml>_<48150>_<4815./pages/sale/coupon/my/showcoupons2/index.wxml>_<48150>_<4815./pages/shop/caregory/index.wxml>_<48150>_<4815./pages/shop/notice/detail/detail.wxml>_<48150>_<4815./pages/shop/notice/index/index.wxml>_<48150>_<4815./pages/transfer/bargain/index.wxml>_<48150>_<4815./pages/transfer/commission/index.wxml>_<48150>_<4815./pages/transfer/groups/index.wxml>_<48150>_<4815./pages/transfer/seckill/index.wxml>_<48150>_<4815./pages/verifygoods/detail/index.wxml>_<48150>_<4815./pages/verifygoods/index.wxml>_<48150>_<4815./pages/web/index.wxml>_<48150","./friendcoupon/index.wxml","./pages/auth/index.wxml","./pages/common/act-picker.wxml","./pages/common/city-picker.wxml","./pages/common/copyright.wxml","./pages/common/coupon-picker.wxml","./pages/common/diyform.wxml","./pages/common/diyform_view.wxml","./pages/common/gift-picker.wxml","./pages/common/goods-picker.wxml","./pages/common/menu.wxml","./pages/creditshop/comment/index.wxml","./pages/creditshop/create/index.wxml","./pages/creditshop/creditlog/index.wxml","./pages/creditshop/detail/index.wxml","./pages/creditshop/express/index.wxml","./pages/creditshop/index.wxml","./pages/creditshop/lists/index.wxml","./pages/creditshop/log/detail/index.wxml","./pages/creditshop/log/index.wxml","./pages/creditshop/verify/index.wxml","./pages/custom/index.wxml","./pages/date/date.wxml","./pages/diy/index.wxml","./pages/diy/template/tpl.wxml","./pages/diy/template/tpl_audio.wxml","./pages/diy/template/tpl_banner.wxml","./pages/diy/template/tpl_bindmobile.wxml","./pages/diy/template/tpl_blank.wxml","./pages/diy/template/tpl_copyright.wxml","./pages/diy/template/tpl_coupon.wxml","./pages/diy/template/tpl_detail_buyshow.wxml","./pages/diy/template/tpl_detail_comment.wxml","./pages/diy/template/tpl_detail_info.wxml","./pages/diy/template/tpl_detail_navbar.wxml","./pages/diy/template/tpl_detail_package.wxml","./pages/diy/template/tpl_detail_sale.wxml","./pages/diy/template/tpl_detail_seckill.wxml","./pages/diy/template/tpl_detail_shop.wxml","./pages/diy/template/tpl_detail_spec.wxml","./pages/diy/template/tpl_detail_swipe.wxml","./pages/diy/template/tpl_fixedsearch.wxml","./pages/diy/template/tpl_goods.wxml","./pages/diy/template/tpl_groupsgoods.wxml","./pages/diy/template/tpl_icongroup.wxml","./pages/diy/template/tpl_line.wxml","./pages/diy/template/tpl_listmenu.wxml","./pages/diy/template/tpl_memberhead.wxml","./pages/diy/template/tpl_menu.wxml","./pages/diy/template/tpl_menu2.wxml","./pages/diy/template/tpl_merchgroup.wxml","./pages/diy/template/tpl_notice.wxml","./pages/diy/template/tpl_picture.wxml","./pages/diy/template/tpl_pictures.wxml","./pages/diy/template/tpl_picturew.wxml","./pages/diy/template/tpl_richtext.wxml","./pages/diy/template/tpl_search.wxml","./pages/diy/template/tpl_seckill_advs.wxml","./pages/diy/template/tpl_seckill_list.wxml","./pages/diy/template/tpl_seckill_rooms.wxml","./pages/diy/template/tpl_seckill_times.wxml","./pages/diy/template/tpl_seckillgroup.wxml","./pages/diy/template/tpl_tabbar.wxml","./pages/diy/template/tpl_tabbarlist.wxml","./pages/diy/template/tpl_tablist.wxml","./pages/diy/template/tpl_title.wxml","./pages/diy/template/tpl_topmenu.wxml","./pages/diy/template/tpl_verifygoods.wxml","./pages/diy/template/tpl_video.wxml","./pages/goods/detail/index.wxml","./pages/goods/index/index.wxml","./pages/goods/package/detail/index.wxml","./pages/goods/package/index.wxml","./pages/goods/poster/poster.wxml","./pages/goods/region/index.wxml","./pages/index/adv.wxml","./pages/index/adver.wxml","./pages/index/banner.wxml","./pages/index/coupontips.wxml","./pages/index/cube.wxml","./pages/index/index.wxml","./pages/index/nav.wxml","./pages/index/notice.wxml","./pages/index/recommand.wxml","./pages/index/search.wxml","./pages/login/privacy_agreement/privacy_agreement.wxml","./pages/login/user_terms/user_terms.wxml","./pages/map/index.wxml","./pages/member/address/index.wxml","./pages/member/address/post.wxml","./pages/member/address/select.wxml","./pages/member/bind/index.wxml","./pages/member/cart/index.wxml","./pages/member/favorite/index.wxml","./pages/member/history/index.wxml","./pages/member/index/index.wxml","./pages/member/info/index.wxml","./pages/member/log/index.wxml","./pages/member/membercard/detail/index.wxml","./pages/member/membercard/index.wxml","./pages/member/membercard/pay/index.wxml","./pages/member/middlejump/middlejump.wxml","./pages/member/recharge/index.wxml","./pages/member/withdraw/index.wxml","./pages/message/auth/index.wxml","./pages/order/comment/index.wxml","./pages/order/create/index.wxml","./pages/order/cycle/address.wxml","./pages/order/cycle/index.wxml","./pages/order/cycle/order.wxml","./pages/order/detail/index.wxml","./pages/order/express/index.wxml","./pages/order/express/number.wxml","./pages/order/index.wxml","./pages/order/pay/coupons/coupons.wxml","./pages/order/pay/index.wxml","./pages/order/pay/share/share.wxml","./pages/order/public/verify.wxml","./pages/order/refund/index.wxml","./pages/order/singlerefund/index.wxml","./pages/order/store/index.wxml","./pages/order/store/map.wxml","./pages/public/coupon/index.wxml","./pages/quickbuy/index.wxml","./pages/sale/coupon/detail/index.wxml","./pages/sale/coupon/index/index.wxml","./pages/sale/coupon/my/detail/index.wxml","./pages/sale/coupon/my/index/index.wxml","./pages/sale/coupon/my/list/index.wxml","./pages/sale/coupon/my/showcoupons2/index.wxml","./pages/shop/caregory/index.wxml","./pages/shop/notice/detail/detail.wxml","./pages/shop/notice/index/index.wxml","./pages/transfer/bargain/index.wxml","./pages/transfer/commission/index.wxml","./pages/transfer/groups/index.wxml","./pages/transfer/seckill/index.wxml","./pages/verifygoods/detail/index.wxml","./pages/verifygoods/index.wxml","./pages/web/index.wxml","./utils/wxParse/wxParse.wxml","./utils/price.wxs","-gn","$gwx"] + const storagePath = path.resolve( + __dirname, + `result/${this.test?.title}` + ); + try { + fs.mkdirSync(storagePath, { recursive: true }); + } catch (error) {} + const w = (await windows.wcc(args, projectPath)).replace(/\r/g, '') + const n = await linux.wcc(args, projectPath, storagePath) + fs.writeFileSync( + `${storagePath}/wine-output.js`, + w + ); + fs.writeFileSync( + `${storagePath}/linux-output.js`, + n + ); + assert.ok(w.length === n.length, `${w.length} === ${n.length}`); + assert.ok(w === n); + }); + it("case2", async function () { + const projectPath = path.resolve( + __dirname, + "./wxapp" + ); + const args = ["-ds","-d","--split",">_<9277","-cc","74>_<9277./friendcoupon/index.wxml>_<92770>_<9277./pages/auth/index.wxml>_<92770>_<9277./pages/creditshop/comment/index.wxml>_<92770>_<9277./pages/creditshop/create/index.wxml>_<92770>_<9277./pages/creditshop/creditlog/index.wxml>_<92770>_<9277./pages/creditshop/detail/index.wxml>_<92770>_<9277./pages/creditshop/express/index.wxml>_<92770>_<9277./pages/creditshop/index.wxml>_<92770>_<9277./pages/creditshop/lists/index.wxml>_<92770>_<9277./pages/creditshop/log/detail/index.wxml>_<92770>_<9277./pages/creditshop/log/index.wxml>_<92770>_<9277./pages/creditshop/verify/index.wxml>_<92770>_<9277./pages/custom/index.wxml>_<92770>_<9277./pages/goods/detail/index.wxml>_<92771>_<9277share-button>_<9277./pages/goods/index/index.wxml>_<92770>_<9277./pages/goods/package/detail/index.wxml>_<92770>_<9277./pages/goods/package/index.wxml>_<92770>_<9277./pages/goods/poster/poster.wxml>_<92770>_<9277./pages/goods/region/index.wxml>_<92770>_<9277./pages/index/index.wxml>_<92770>_<9277./pages/login/privacy_agreement/privacy_agreement.wxml>_<92770>_<9277./pages/login/user_terms/user_terms.wxml>_<92770>_<9277./pages/map/index.wxml>_<92770>_<9277./pages/member/address/index.wxml>_<92770>_<9277./pages/member/address/post.wxml>_<92770>_<9277./pages/member/address/select.wxml>_<92770>_<9277./pages/member/bind/index.wxml>_<92770>_<9277./pages/member/cart/index.wxml>_<92770>_<9277./pages/member/favorite/index.wxml>_<92770>_<9277./pages/member/history/index.wxml>_<92770>_<9277./pages/member/index/index.wxml>_<92770>_<9277./pages/member/info/index.wxml>_<92770>_<9277./pages/member/log/index.wxml>_<92770>_<9277./pages/member/membercard/detail/index.wxml>_<92770>_<9277./pages/member/membercard/index.wxml>_<92770>_<9277./pages/member/membercard/pay/index.wxml>_<92770>_<9277./pages/member/middlejump/middlejump.wxml>_<92770>_<9277./pages/member/recharge/index.wxml>_<92770>_<9277./pages/member/withdraw/index.wxml>_<92770>_<9277./pages/message/auth/index.wxml>_<92770>_<9277./pages/order/comment/index.wxml>_<92770>_<9277./pages/order/create/index.wxml>_<92770>_<9277./pages/order/cycle/address.wxml>_<92770>_<9277./pages/order/cycle/index.wxml>_<92770>_<9277./pages/order/cycle/order.wxml>_<92770>_<9277./pages/order/detail/index.wxml>_<92770>_<9277./pages/order/express/index.wxml>_<92770>_<9277./pages/order/express/number.wxml>_<92770>_<9277./pages/order/index.wxml>_<92770>_<9277./pages/order/pay/coupons/coupons.wxml>_<92770>_<9277./pages/order/pay/index.wxml>_<92770>_<9277./pages/order/pay/share/share.wxml>_<92770>_<9277./pages/order/refund/index.wxml>_<92770>_<9277./pages/order/singlerefund/index.wxml>_<92770>_<9277./pages/order/store/index.wxml>_<92770>_<9277./pages/order/store/map.wxml>_<92770>_<9277./pages/public/coupon/index.wxml>_<92770>_<9277./pages/quickbuy/index.wxml>_<92770>_<9277./pages/sale/coupon/detail/index.wxml>_<92770>_<9277./pages/sale/coupon/index/index.wxml>_<92770>_<9277./pages/sale/coupon/my/detail/index.wxml>_<92770>_<9277./pages/sale/coupon/my/index/index.wxml>_<92770>_<9277./pages/sale/coupon/my/list/index.wxml>_<92770>_<9277./pages/sale/coupon/my/showcoupons2/index.wxml>_<92770>_<9277./pages/shop/caregory/index.wxml>_<92770>_<9277./pages/shop/notice/detail/detail.wxml>_<92770>_<9277./pages/shop/notice/index/index.wxml>_<92770>_<9277./pages/transfer/bargain/index.wxml>_<92770>_<9277./pages/transfer/commission/index.wxml>_<92770>_<9277./pages/transfer/groups/index.wxml>_<92770>_<9277./pages/transfer/seckill/index.wxml>_<92770>_<9277./pages/verifygoods/detail/index.wxml>_<92770>_<9277./pages/verifygoods/index.wxml>_<92770>_<9277./pages/web/index.wxml>_<92770","./friendcoupon/index.wxml","./pages/auth/index.wxml","./pages/common/act-picker.wxml","./pages/common/city-picker.wxml","./pages/common/copyright.wxml","./pages/common/coupon-picker.wxml","./pages/common/diyform.wxml","./pages/common/diyform_view.wxml","./pages/common/gift-picker.wxml","./pages/common/goods-picker.wxml","./pages/common/menu.wxml","./pages/creditshop/comment/index.wxml","./pages/creditshop/create/index.wxml","./pages/creditshop/creditlog/index.wxml","./pages/creditshop/detail/index.wxml","./pages/creditshop/express/index.wxml","./pages/creditshop/index.wxml","./pages/creditshop/lists/index.wxml","./pages/creditshop/log/detail/index.wxml","./pages/creditshop/log/index.wxml","./pages/creditshop/verify/index.wxml","./pages/custom/index.wxml","./pages/date/date.wxml","./pages/diy/index.wxml","./pages/diy/template/tpl.wxml","./pages/diy/template/tpl_audio.wxml","./pages/diy/template/tpl_banner.wxml","./pages/diy/template/tpl_bindmobile.wxml","./pages/diy/template/tpl_blank.wxml","./pages/diy/template/tpl_copyright.wxml","./pages/diy/template/tpl_coupon.wxml","./pages/diy/template/tpl_detail_buyshow.wxml","./pages/diy/template/tpl_detail_comment.wxml","./pages/diy/template/tpl_detail_info.wxml","./pages/diy/template/tpl_detail_navbar.wxml","./pages/diy/template/tpl_detail_package.wxml","./pages/diy/template/tpl_detail_sale.wxml","./pages/diy/template/tpl_detail_seckill.wxml","./pages/diy/template/tpl_detail_shop.wxml","./pages/diy/template/tpl_detail_spec.wxml","./pages/diy/template/tpl_detail_swipe.wxml","./pages/diy/template/tpl_fixedsearch.wxml","./pages/diy/template/tpl_goods.wxml","./pages/diy/template/tpl_groupsgoods.wxml","./pages/diy/template/tpl_icongroup.wxml","./pages/diy/template/tpl_line.wxml","./pages/diy/template/tpl_listmenu.wxml","./pages/diy/template/tpl_memberhead.wxml","./pages/diy/template/tpl_menu.wxml","./pages/diy/template/tpl_menu2.wxml","./pages/diy/template/tpl_merchgroup.wxml","./pages/diy/template/tpl_notice.wxml","./pages/diy/template/tpl_picture.wxml","./pages/diy/template/tpl_pictures.wxml","./pages/diy/template/tpl_picturew.wxml","./pages/diy/template/tpl_richtext.wxml","./pages/diy/template/tpl_search.wxml","./pages/diy/template/tpl_seckill_advs.wxml","./pages/diy/template/tpl_seckill_list.wxml","./pages/diy/template/tpl_seckill_rooms.wxml","./pages/diy/template/tpl_seckill_times.wxml","./pages/diy/template/tpl_seckillgroup.wxml","./pages/diy/template/tpl_tabbar.wxml","./pages/diy/template/tpl_tabbarlist.wxml","./pages/diy/template/tpl_tablist.wxml","./pages/diy/template/tpl_title.wxml","./pages/diy/template/tpl_topmenu.wxml","./pages/diy/template/tpl_verifygoods.wxml","./pages/diy/template/tpl_video.wxml","./pages/goods/detail/index.wxml","./pages/goods/index/index.wxml","./pages/goods/package/detail/index.wxml","./pages/goods/package/index.wxml","./pages/goods/poster/poster.wxml","./pages/goods/region/index.wxml","./pages/index/adv.wxml","./pages/index/adver.wxml","./pages/index/banner.wxml","./pages/index/coupontips.wxml","./pages/index/cube.wxml","./pages/index/index.wxml","./pages/index/nav.wxml","./pages/index/notice.wxml","./pages/index/recommand.wxml","./pages/index/search.wxml","./pages/login/privacy_agreement/privacy_agreement.wxml","./pages/login/user_terms/user_terms.wxml","./pages/map/index.wxml","./pages/member/address/index.wxml","./pages/member/address/post.wxml","./pages/member/address/select.wxml","./pages/member/bind/index.wxml","./pages/member/cart/index.wxml","./pages/member/favorite/index.wxml","./pages/member/history/index.wxml","./pages/member/index/index.wxml","./pages/member/info/index.wxml","./pages/member/log/index.wxml","./pages/member/membercard/detail/index.wxml","./pages/member/membercard/index.wxml","./pages/member/membercard/pay/index.wxml","./pages/member/middlejump/middlejump.wxml","./pages/member/recharge/index.wxml","./pages/member/withdraw/index.wxml","./pages/message/auth/index.wxml","./pages/order/comment/index.wxml","./pages/order/create/index.wxml","./pages/order/cycle/address.wxml","./pages/order/cycle/index.wxml","./pages/order/cycle/order.wxml","./pages/order/detail/index.wxml","./pages/order/express/index.wxml","./pages/order/express/number.wxml","./pages/order/index.wxml","./pages/order/pay/coupons/coupons.wxml","./pages/order/pay/index.wxml","./pages/order/pay/share/share.wxml","./pages/order/public/verify.wxml","./pages/order/refund/index.wxml","./pages/order/singlerefund/index.wxml","./pages/order/store/index.wxml","./pages/order/store/map.wxml","./pages/public/coupon/index.wxml","./pages/quickbuy/index.wxml","./pages/sale/coupon/detail/index.wxml","./pages/sale/coupon/index/index.wxml","./pages/sale/coupon/my/detail/index.wxml","./pages/sale/coupon/my/index/index.wxml","./pages/sale/coupon/my/list/index.wxml","./pages/sale/coupon/my/showcoupons2/index.wxml","./pages/shop/caregory/index.wxml","./pages/shop/notice/detail/detail.wxml","./pages/shop/notice/index/index.wxml","./pages/transfer/bargain/index.wxml","./pages/transfer/commission/index.wxml","./pages/transfer/groups/index.wxml","./pages/transfer/seckill/index.wxml","./pages/verifygoods/detail/index.wxml","./pages/verifygoods/index.wxml","./pages/web/index.wxml","./utils/wxParse/wxParse.wxml","./utils/price.wxs","-gn","$gwx"] + const storagePath = path.resolve( + __dirname, + `result/${this.test?.title}` + ); + try { + fs.mkdirSync(storagePath, { recursive: true }); + } catch (error) {} + const nodeRet = await linux.wcc(args, projectPath, storagePath) + const n = nodeRet; + const w = await windows.wcc(args, projectPath); + fs.writeFileSync( + `${storagePath}/wine-output.js`, + w + ); + fs.writeFileSync( + `${storagePath}/linux-output.js`, + n + ); + assert.ok(w.replace(/\r/g, '') === n); + }); + }); +}); diff --git a/test/spec/issue/102/prepare.sh b/test/spec/issue/102/prepare.sh new file mode 100755 index 0000000..632f700 --- /dev/null +++ b/test/spec/issue/102/prepare.sh @@ -0,0 +1,5 @@ +#! /bin/bash + +dir=$(cd `dirname $0` && pwd -P) + +tar -zxf $dir/wxapp.tar.gz -C $dir diff --git a/test/spec/issue/102/wxapp.tar.gz b/test/spec/issue/102/wxapp.tar.gz new file mode 100644 index 0000000..e5bd536 Binary files /dev/null and b/test/spec/issue/102/wxapp.tar.gz differ diff --git a/test/spec/issue/prepare.sh b/test/spec/issue/prepare.sh new file mode 100755 index 0000000..9ed2cf7 --- /dev/null +++ b/test/spec/issue/prepare.sh @@ -0,0 +1,15 @@ +#! /bin/bash + +test_dir=$(cd `dirname $0`/../.. && pwd -P) +project_dir="$test_dir/spec/issue" + +cd "$project_dir" +echo "prepare for ${project_dir}" + +for dir in "$project_dir"/*; do + if [ -d "$dir" ]; then + if [ -f "$dir/prepare.sh" ]; then + "$dir/prepare.sh" + fi + fi +done \ No newline at end of file diff --git a/test/spec/prepare.sh b/test/spec/prepare.sh index 694ec49..1177e6a 100755 --- a/test/spec/prepare.sh +++ b/test/spec/prepare.sh @@ -3,6 +3,7 @@ set -e test_dir=$(cd `dirname $0`/.. && pwd -P) +"$test_dir/spec/issue/prepare.sh" project_dir="$test_dir/projects" for dir in "$project_dir"/*; do