Skip to content

Commit 01c3678

Browse files
committed
multi-module test
1 parent e48b532 commit 01c3678

15 files changed

Lines changed: 167 additions & 150 deletions

File tree

Plugins/BridgeJS/Tests/BridgeJSToolTests/BridgeJSCodegenTests.swift

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -137,20 +137,25 @@ import Testing
137137
let url = Self.inputsDirectory.appendingPathComponent(input)
138138
let name = url.deletingPathExtension().lastPathComponent
139139
let sourceFile = Parser.parse(source: try String(contentsOf: url, encoding: .utf8))
140-
let moduleSource =
140+
let moduleSources =
141141
input == "JSImportModule.swift"
142-
? try String(
143-
contentsOf: Self.inputsDirectory.appending(path: "Modules/JSImportModule.mjs"),
144-
encoding: .utf8
145-
)
146-
147-
: nil
142+
? [
143+
"/Modules/JSImportModule.mjs": try String(
144+
contentsOf: Self.inputsDirectory.appending(path: "Modules/JSImportModule.mjs"),
145+
encoding: .utf8
146+
),
147+
"/Modules/ModuleCounter.mjs": try String(
148+
contentsOf: Self.inputsDirectory.appending(path: "Modules/ModuleCounter.mjs"),
149+
encoding: .utf8
150+
),
151+
]
152+
: [:]
148153
let swiftAPI = SwiftToSkeleton(
149154
progress: .silent,
150155
moduleName: "TestModule",
151156
exposeToGlobal: false,
152157
externalModuleIndex: .empty,
153-
javaScriptModuleSource: { $0 == "/Modules/JSImportModule.mjs" ? moduleSource : nil }
158+
javaScriptModuleSource: { moduleSources[$0] }
154159
)
155160
swiftAPI.addSourceFile(sourceFile, inputFilePath: input)
156161
let skeleton = try swiftAPI.finalize()

Plugins/BridgeJS/Tests/BridgeJSToolTests/BridgeJSLinkTests.swift

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -76,19 +76,25 @@ import Testing
7676
let name = url.deletingPathExtension().lastPathComponent
7777

7878
let sourceFile = Parser.parse(source: try String(contentsOf: url, encoding: .utf8))
79-
let moduleSource =
79+
let moduleSources =
8080
input == "JSImportModule.swift"
81-
? try String(
82-
contentsOf: Self.inputsDirectory.appending(path: "Modules/JSImportModule.mjs"),
83-
encoding: .utf8
84-
)
85-
: nil
81+
? [
82+
"/Modules/JSImportModule.mjs": try String(
83+
contentsOf: Self.inputsDirectory.appending(path: "Modules/JSImportModule.mjs"),
84+
encoding: .utf8
85+
),
86+
"/Modules/ModuleCounter.mjs": try String(
87+
contentsOf: Self.inputsDirectory.appending(path: "Modules/ModuleCounter.mjs"),
88+
encoding: .utf8
89+
),
90+
]
91+
: [:]
8692
let importSwift = SwiftToSkeleton(
8793
progress: .silent,
8894
moduleName: "TestModule",
8995
exposeToGlobal: false,
9096
externalModuleIndex: .empty,
91-
javaScriptModuleSource: { $0 == "/Modules/JSImportModule.mjs" ? moduleSource : nil }
97+
javaScriptModuleSource: { moduleSources[$0] }
9298
)
9399
importSwift.addSourceFile(sourceFile, inputFilePath: "\(name).swift")
94100
let importResult = try importSwift.finalize()

Plugins/BridgeJS/Tests/BridgeJSToolTests/Inputs/MacroSwift/JSImportModule.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@ func moduleRenamed() throws(JSException) -> String
77
@JSGetter(jsName: "version", from: .module("/Modules/JSImportModule.mjs"))
88
var moduleVersion: String
99

10-
@JSClass(jsName: "ModuleCounter", from: .module("/Modules/JSImportModule.mjs"))
11-
struct ImportedModuleCounter {
10+
@JSClass(from: .module("/Modules/ModuleCounter.mjs"))
11+
struct ModuleCounter {
1212
@JSFunction init(_ value: Int) throws(JSException)
13-
@JSFunction static func create(_ value: Int) throws(JSException) -> ImportedModuleCounter
13+
@JSFunction static func create(_ value: Int) throws(JSException) -> ModuleCounter
1414
@JSFunction func increment() throws(JSException) -> Int
1515
@JSGetter var value: Int
1616
@JSSetter func setValue(_ value: Int) throws(JSException)

Plugins/BridgeJS/Tests/BridgeJSToolTests/Inputs/MacroSwift/Modules/JSImportModule.mjs

Lines changed: 0 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,3 @@ export function renamedFunction() {
77
}
88

99
export const version = "1.0";
10-
11-
export class ModuleCounter {
12-
constructor(value) {
13-
this.value = value;
14-
}
15-
16-
static create(value) {
17-
return new ModuleCounter(value);
18-
}
19-
20-
increment() {
21-
return ++this.value;
22-
}
23-
24-
setValue(value) {
25-
this.value = value;
26-
}
27-
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
export class ModuleCounter {
2+
constructor(value) {
3+
this.value = value;
4+
}
5+
6+
static create(value) {
7+
return new ModuleCounter(value);
8+
}
9+
10+
increment() {
11+
return ++this.value;
12+
}
13+
14+
setValue(value) {
15+
this.value = value;
16+
}
17+
}

Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/JSImportModule.json

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
}
9898
]
9999
},
100-
"from" : "\/Modules\/JSImportModule.mjs",
100+
"from" : "\/Modules\/ModuleCounter.mjs",
101101
"getters" : [
102102
{
103103
"accessLevel" : "internal",
@@ -112,7 +112,6 @@
112112
}
113113
}
114114
],
115-
"jsName" : "ModuleCounter",
116115
"methods" : [
117116
{
118117
"accessLevel" : "internal",
@@ -135,7 +134,7 @@
135134
}
136135
}
137136
],
138-
"name" : "ImportedModuleCounter",
137+
"name" : "ModuleCounter",
139138
"setters" : [
140139
{
141140
"accessLevel" : "internal",
@@ -175,7 +174,7 @@
175174
],
176175
"returnType" : {
177176
"jsObject" : {
178-
"_0" : "ImportedModuleCounter"
177+
"_0" : "ModuleCounter"
179178
}
180179
}
181180
}
@@ -187,7 +186,11 @@
187186
"modules" : [
188187
{
189188
"path" : "\/Modules\/JSImportModule.mjs",
190-
"source" : "export function moduleAdd(lhs, rhs) {\n return lhs + rhs;\n}\n\nexport function renamedFunction() {\n return \"renamed\";\n}\n\nexport const version = \"1.0\";\n\nexport class ModuleCounter {\n constructor(value) {\n this.value = value;\n }\n\n static create(value) {\n return new ModuleCounter(value);\n }\n\n increment() {\n return ++this.value;\n }\n\n setValue(value) {\n this.value = value;\n }\n}\n"
189+
"source" : "export function moduleAdd(lhs, rhs) {\n return lhs + rhs;\n}\n\nexport function renamedFunction() {\n return \"renamed\";\n}\n\nexport const version = \"1.0\";\n"
190+
},
191+
{
192+
"path" : "\/Modules\/ModuleCounter.mjs",
193+
"source" : "export class ModuleCounter {\n constructor(value) {\n this.value = value;\n }\n\n static create(value) {\n return new ModuleCounter(value);\n }\n\n increment() {\n return ++this.value;\n }\n\n setValue(value) {\n this.value = value;\n }\n}\n"
191194
}
192195
]
193196
},

Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/JSImportModule.swift

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -61,104 +61,104 @@ func _$moduleRenamed() throws(JSException) -> String {
6161
}
6262

6363
#if arch(wasm32)
64-
@_extern(wasm, module: "TestModule", name: "bjs_ImportedModuleCounter_init")
65-
fileprivate func bjs_ImportedModuleCounter_init_extern(_ value: Int32) -> Int32
64+
@_extern(wasm, module: "TestModule", name: "bjs_ModuleCounter_init")
65+
fileprivate func bjs_ModuleCounter_init_extern(_ value: Int32) -> Int32
6666
#else
67-
fileprivate func bjs_ImportedModuleCounter_init_extern(_ value: Int32) -> Int32 {
67+
fileprivate func bjs_ModuleCounter_init_extern(_ value: Int32) -> Int32 {
6868
fatalError("Only available on WebAssembly")
6969
}
7070
#endif
71-
@inline(never) fileprivate func bjs_ImportedModuleCounter_init(_ value: Int32) -> Int32 {
72-
return bjs_ImportedModuleCounter_init_extern(value)
71+
@inline(never) fileprivate func bjs_ModuleCounter_init(_ value: Int32) -> Int32 {
72+
return bjs_ModuleCounter_init_extern(value)
7373
}
7474

7575
#if arch(wasm32)
76-
@_extern(wasm, module: "TestModule", name: "bjs_ImportedModuleCounter_create_static")
77-
fileprivate func bjs_ImportedModuleCounter_create_static_extern(_ value: Int32) -> Int32
76+
@_extern(wasm, module: "TestModule", name: "bjs_ModuleCounter_create_static")
77+
fileprivate func bjs_ModuleCounter_create_static_extern(_ value: Int32) -> Int32
7878
#else
79-
fileprivate func bjs_ImportedModuleCounter_create_static_extern(_ value: Int32) -> Int32 {
79+
fileprivate func bjs_ModuleCounter_create_static_extern(_ value: Int32) -> Int32 {
8080
fatalError("Only available on WebAssembly")
8181
}
8282
#endif
83-
@inline(never) fileprivate func bjs_ImportedModuleCounter_create_static(_ value: Int32) -> Int32 {
84-
return bjs_ImportedModuleCounter_create_static_extern(value)
83+
@inline(never) fileprivate func bjs_ModuleCounter_create_static(_ value: Int32) -> Int32 {
84+
return bjs_ModuleCounter_create_static_extern(value)
8585
}
8686

8787
#if arch(wasm32)
88-
@_extern(wasm, module: "TestModule", name: "bjs_ImportedModuleCounter_value_get")
89-
fileprivate func bjs_ImportedModuleCounter_value_get_extern(_ self: Int32) -> Int32
88+
@_extern(wasm, module: "TestModule", name: "bjs_ModuleCounter_value_get")
89+
fileprivate func bjs_ModuleCounter_value_get_extern(_ self: Int32) -> Int32
9090
#else
91-
fileprivate func bjs_ImportedModuleCounter_value_get_extern(_ self: Int32) -> Int32 {
91+
fileprivate func bjs_ModuleCounter_value_get_extern(_ self: Int32) -> Int32 {
9292
fatalError("Only available on WebAssembly")
9393
}
9494
#endif
95-
@inline(never) fileprivate func bjs_ImportedModuleCounter_value_get(_ self: Int32) -> Int32 {
96-
return bjs_ImportedModuleCounter_value_get_extern(self)
95+
@inline(never) fileprivate func bjs_ModuleCounter_value_get(_ self: Int32) -> Int32 {
96+
return bjs_ModuleCounter_value_get_extern(self)
9797
}
9898

9999
#if arch(wasm32)
100-
@_extern(wasm, module: "TestModule", name: "bjs_ImportedModuleCounter_value_set")
101-
fileprivate func bjs_ImportedModuleCounter_value_set_extern(_ self: Int32, _ newValue: Int32) -> Void
100+
@_extern(wasm, module: "TestModule", name: "bjs_ModuleCounter_value_set")
101+
fileprivate func bjs_ModuleCounter_value_set_extern(_ self: Int32, _ newValue: Int32) -> Void
102102
#else
103-
fileprivate func bjs_ImportedModuleCounter_value_set_extern(_ self: Int32, _ newValue: Int32) -> Void {
103+
fileprivate func bjs_ModuleCounter_value_set_extern(_ self: Int32, _ newValue: Int32) -> Void {
104104
fatalError("Only available on WebAssembly")
105105
}
106106
#endif
107-
@inline(never) fileprivate func bjs_ImportedModuleCounter_value_set(_ self: Int32, _ newValue: Int32) -> Void {
108-
return bjs_ImportedModuleCounter_value_set_extern(self, newValue)
107+
@inline(never) fileprivate func bjs_ModuleCounter_value_set(_ self: Int32, _ newValue: Int32) -> Void {
108+
return bjs_ModuleCounter_value_set_extern(self, newValue)
109109
}
110110

111111
#if arch(wasm32)
112-
@_extern(wasm, module: "TestModule", name: "bjs_ImportedModuleCounter_increment")
113-
fileprivate func bjs_ImportedModuleCounter_increment_extern(_ self: Int32) -> Int32
112+
@_extern(wasm, module: "TestModule", name: "bjs_ModuleCounter_increment")
113+
fileprivate func bjs_ModuleCounter_increment_extern(_ self: Int32) -> Int32
114114
#else
115-
fileprivate func bjs_ImportedModuleCounter_increment_extern(_ self: Int32) -> Int32 {
115+
fileprivate func bjs_ModuleCounter_increment_extern(_ self: Int32) -> Int32 {
116116
fatalError("Only available on WebAssembly")
117117
}
118118
#endif
119-
@inline(never) fileprivate func bjs_ImportedModuleCounter_increment(_ self: Int32) -> Int32 {
120-
return bjs_ImportedModuleCounter_increment_extern(self)
119+
@inline(never) fileprivate func bjs_ModuleCounter_increment(_ self: Int32) -> Int32 {
120+
return bjs_ModuleCounter_increment_extern(self)
121121
}
122122

123-
func _$ImportedModuleCounter_init(_ value: Int) throws(JSException) -> JSObject {
123+
func _$ModuleCounter_init(_ value: Int) throws(JSException) -> JSObject {
124124
let valueValue = value.bridgeJSLowerParameter()
125-
let ret = bjs_ImportedModuleCounter_init(valueValue)
125+
let ret = bjs_ModuleCounter_init(valueValue)
126126
if let error = _swift_js_take_exception() {
127127
throw error
128128
}
129129
return JSObject.bridgeJSLiftReturn(ret)
130130
}
131131

132-
func _$ImportedModuleCounter_create(_ value: Int) throws(JSException) -> ImportedModuleCounter {
132+
func _$ModuleCounter_create(_ value: Int) throws(JSException) -> ModuleCounter {
133133
let valueValue = value.bridgeJSLowerParameter()
134-
let ret = bjs_ImportedModuleCounter_create_static(valueValue)
134+
let ret = bjs_ModuleCounter_create_static(valueValue)
135135
if let error = _swift_js_take_exception() {
136136
throw error
137137
}
138-
return ImportedModuleCounter.bridgeJSLiftReturn(ret)
138+
return ModuleCounter.bridgeJSLiftReturn(ret)
139139
}
140140

141-
func _$ImportedModuleCounter_value_get(_ self: JSObject) throws(JSException) -> Int {
141+
func _$ModuleCounter_value_get(_ self: JSObject) throws(JSException) -> Int {
142142
let selfValue = self.bridgeJSLowerParameter()
143-
let ret = bjs_ImportedModuleCounter_value_get(selfValue)
143+
let ret = bjs_ModuleCounter_value_get(selfValue)
144144
if let error = _swift_js_take_exception() {
145145
throw error
146146
}
147147
return Int.bridgeJSLiftReturn(ret)
148148
}
149149

150-
func _$ImportedModuleCounter_value_set(_ self: JSObject, _ newValue: Int) throws(JSException) -> Void {
150+
func _$ModuleCounter_value_set(_ self: JSObject, _ newValue: Int) throws(JSException) -> Void {
151151
let selfValue = self.bridgeJSLowerParameter()
152152
let newValueValue = newValue.bridgeJSLowerParameter()
153-
bjs_ImportedModuleCounter_value_set(selfValue, newValueValue)
153+
bjs_ModuleCounter_value_set(selfValue, newValueValue)
154154
if let error = _swift_js_take_exception() {
155155
throw error
156156
}
157157
}
158158

159-
func _$ImportedModuleCounter_increment(_ self: JSObject) throws(JSException) -> Int {
159+
func _$ModuleCounter_increment(_ self: JSObject) throws(JSException) -> Int {
160160
let selfValue = self.bridgeJSLowerParameter()
161-
let ret = bjs_ImportedModuleCounter_increment(selfValue)
161+
let ret = bjs_ModuleCounter_increment(selfValue)
162162
if let error = _swift_js_take_exception() {
163163
throw error
164164
}

Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSLinkTests/JSImportModule.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
// To update this file, just rebuild your project or run
55
// `swift package bridge-js`.
66

7-
export interface ImportedModuleCounter {
7+
export interface ModuleCounter {
88
increment(): number;
99
value: number;
1010
}

Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSLinkTests/JSImportModule.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
// `swift package bridge-js`.
66

77
import * as __bjs_imported_module_0 from "./bridge-js-modules/TestModule/Modules/JSImportModule.mjs";
8+
import * as __bjs_imported_module_1 from "./bridge-js-modules/TestModule/Modules/ModuleCounter.mjs";
89

910
export async function createInstantiator(options, swift) {
1011
let instance;
@@ -233,15 +234,15 @@ export async function createInstantiator(options, swift) {
233234
setException(error);
234235
}
235236
}
236-
TestModule["bjs_ImportedModuleCounter_init"] = function bjs_ImportedModuleCounter_init(value) {
237+
TestModule["bjs_ModuleCounter_init"] = function bjs_ModuleCounter_init(value) {
237238
try {
238-
return swift.memory.retain(new __bjs_imported_module_0.ModuleCounter(value));
239+
return swift.memory.retain(new __bjs_imported_module_1.ModuleCounter(value));
239240
} catch (error) {
240241
setException(error);
241242
return 0
242243
}
243244
}
244-
TestModule["bjs_ImportedModuleCounter_value_get"] = function bjs_ImportedModuleCounter_value_get(self) {
245+
TestModule["bjs_ModuleCounter_value_get"] = function bjs_ModuleCounter_value_get(self) {
245246
try {
246247
let ret = swift.memory.getObject(self).value;
247248
return ret;
@@ -250,23 +251,23 @@ export async function createInstantiator(options, swift) {
250251
return 0
251252
}
252253
}
253-
TestModule["bjs_ImportedModuleCounter_value_set"] = function bjs_ImportedModuleCounter_value_set(self, newValue) {
254+
TestModule["bjs_ModuleCounter_value_set"] = function bjs_ModuleCounter_value_set(self, newValue) {
254255
try {
255256
swift.memory.getObject(self).value = newValue;
256257
} catch (error) {
257258
setException(error);
258259
}
259260
}
260-
TestModule["bjs_ImportedModuleCounter_create_static"] = function bjs_ImportedModuleCounter_create_static(value) {
261+
TestModule["bjs_ModuleCounter_create_static"] = function bjs_ModuleCounter_create_static(value) {
261262
try {
262-
let ret = __bjs_imported_module_0.ModuleCounter.create(value);
263+
let ret = __bjs_imported_module_1.ModuleCounter.create(value);
263264
return swift.memory.retain(ret);
264265
} catch (error) {
265266
setException(error);
266267
return 0
267268
}
268269
}
269-
TestModule["bjs_ImportedModuleCounter_increment"] = function bjs_ImportedModuleCounter_increment(self) {
270+
TestModule["bjs_ModuleCounter_increment"] = function bjs_ModuleCounter_increment(self) {
270271
try {
271272
let ret = swift.memory.getObject(self).increment();
272273
return ret;

Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSLinkTests/JSImportModule.modules.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ export function renamedFunction() {
99

1010
export const version = "1.0";
1111

12+
// bridge-js-modules/TestModule/Modules/ModuleCounter.mjs
1213
export class ModuleCounter {
1314
constructor(value) {
1415
this.value = value;

0 commit comments

Comments
 (0)