Skip to content

Commit df2a0d8

Browse files
committed
Attempt to fix linux_tests
1 parent 31460de commit df2a0d8

File tree

2 files changed

+131
-2
lines changed

2 files changed

+131
-2
lines changed

test/platform/jvm/src/lib.rs

Lines changed: 106 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,12 @@ pub extern "C" fn Java_io_bitdrift_capture_CaptureTestJniLibrary_nextUploadedLog
159159
let message: JObject<'_> = match log.typed_message() {
160160
StringOrBytes::String(s) => env.new_string(&s).unwrap().into(),
161161
StringOrBytes::SharedString(s) => env.new_string(&*s).unwrap().into(),
162-
StringOrBytes::Bytes(_) => JObject::null(),
162+
StringOrBytes::StaticString(s) => env.new_string(s).unwrap().into(),
163+
StringOrBytes::Bytes(_)
164+
| StringOrBytes::Boolean(_)
165+
| StringOrBytes::U64(_)
166+
| StringOrBytes::I64(_)
167+
| StringOrBytes::Double(_) => JObject::null(),
163168
};
164169

165170
// TODO(Augustyniak): Extract the logic below into a helper function.
@@ -210,6 +215,26 @@ pub extern "C" fn Java_io_bitdrift_capture_CaptureTestJniLibrary_nextUploadedLog
210215
}
211216
.unwrap()
212217
},
218+
StringOrBytes::StaticString(s) => {
219+
let value = env.new_string(s).unwrap();
220+
221+
let class = env
222+
.find_class("io/bitdrift/capture/providers/FieldValue$StringField")
223+
.unwrap();
224+
225+
let constructor_id = env
226+
.get_method_id(&class, "<init>", "(Ljava/lang/String;)V")
227+
.unwrap();
228+
229+
unsafe {
230+
env.new_object_unchecked(
231+
class,
232+
constructor_id,
233+
&[JValueWrapper::Object(value.into()).into()],
234+
)
235+
}
236+
.unwrap()
237+
},
213238
StringOrBytes::Bytes(b) => {
214239
let value = env.byte_array_from_slice(b).unwrap();
215240

@@ -230,6 +255,86 @@ pub extern "C" fn Java_io_bitdrift_capture_CaptureTestJniLibrary_nextUploadedLog
230255
}
231256
.unwrap()
232257
},
258+
StringOrBytes::Boolean(b) => {
259+
let value = env.new_string(b.to_string()).unwrap();
260+
261+
let class = env
262+
.find_class("io/bitdrift/capture/providers/FieldValue$StringField")
263+
.unwrap();
264+
265+
let constructor_id = env
266+
.get_method_id(&class, "<init>", "(Ljava/lang/String;)V")
267+
.unwrap();
268+
269+
unsafe {
270+
env.new_object_unchecked(
271+
class,
272+
constructor_id,
273+
&[JValueWrapper::Object(value.into()).into()],
274+
)
275+
}
276+
.unwrap()
277+
},
278+
StringOrBytes::U64(n) => {
279+
let value = env.new_string(n.to_string()).unwrap();
280+
281+
let class = env
282+
.find_class("io/bitdrift/capture/providers/FieldValue$StringField")
283+
.unwrap();
284+
285+
let constructor_id = env
286+
.get_method_id(&class, "<init>", "(Ljava/lang/String;)V")
287+
.unwrap();
288+
289+
unsafe {
290+
env.new_object_unchecked(
291+
class,
292+
constructor_id,
293+
&[JValueWrapper::Object(value.into()).into()],
294+
)
295+
}
296+
.unwrap()
297+
},
298+
StringOrBytes::I64(n) => {
299+
let value = env.new_string(n.to_string()).unwrap();
300+
301+
let class = env
302+
.find_class("io/bitdrift/capture/providers/FieldValue$StringField")
303+
.unwrap();
304+
305+
let constructor_id = env
306+
.get_method_id(&class, "<init>", "(Ljava/lang/String;)V")
307+
.unwrap();
308+
309+
unsafe {
310+
env.new_object_unchecked(
311+
class,
312+
constructor_id,
313+
&[JValueWrapper::Object(value.into()).into()],
314+
)
315+
}
316+
.unwrap()
317+
},
318+
StringOrBytes::Double(n) => {
319+
let value = env.new_string(n.to_string()).unwrap();
320+
321+
let class = env
322+
.find_class("io/bitdrift/capture/providers/FieldValue$StringField")
323+
.unwrap();
324+
325+
let constructor_id = env
326+
.get_method_id(&class, "<init>", "(Ljava/lang/String;)V")
327+
.unwrap();
328+
329+
unsafe {
330+
env.new_object_unchecked(
331+
class,
332+
constructor_id,
333+
&[JValueWrapper::Object(value.into()).into()],
334+
)
335+
}
336+
.unwrap()
337+
},
233338
};
234339

235340
_ = fields.put(&mut env, &key, &value);
@@ -369,7 +474,6 @@ pub extern "C" fn Java_io_bitdrift_capture_CaptureTestJniLibrary_runEventsListen
369474
platform_test_helpers::run_events_listener_target_tests(&target);
370475
}
371476

372-
373477
#[no_mangle]
374478
pub extern "C" fn Java_io_bitdrift_capture_CaptureTestJniLibrary_disableRuntimeFeature(
375479
mut env: JNIEnv<'_>,

test/platform/swift/bridging/src/lib.rs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,11 +202,36 @@ unsafe extern "C" fn next_uploaded_log(uploaded_log: *mut Object) -> bool {
202202

203203
let () = msg_send![uploaded_log, addStringFieldWithKey:key value:value];
204204
},
205+
StringOrBytes::StaticString(s) => {
206+
let value = make_nsstring(s).unwrap();
207+
208+
let () = msg_send![uploaded_log, addStringFieldWithKey:key value:value];
209+
},
205210
StringOrBytes::Bytes(s) => {
206211
let value = make_nsdata(&s);
207212

208213
let () = msg_send![uploaded_log, addBinaryFieldWithKey:key value:value];
209214
},
215+
StringOrBytes::Boolean(b) => {
216+
let value = make_nsstring(&b.to_string()).unwrap();
217+
218+
let () = msg_send![uploaded_log, addStringFieldWithKey:key value:value];
219+
},
220+
StringOrBytes::U64(n) => {
221+
let value = make_nsstring(&n.to_string()).unwrap();
222+
223+
let () = msg_send![uploaded_log, addStringFieldWithKey:key value:value];
224+
},
225+
StringOrBytes::I64(n) => {
226+
let value = make_nsstring(&n.to_string()).unwrap();
227+
228+
let () = msg_send![uploaded_log, addStringFieldWithKey:key value:value];
229+
},
230+
StringOrBytes::Double(n) => {
231+
let value = make_nsstring(&n.to_string()).unwrap();
232+
233+
let () = msg_send![uploaded_log, addStringFieldWithKey:key value:value];
234+
},
210235
}
211236
}
212237

0 commit comments

Comments
 (0)