tests: start building tests in separate directory
This approach seems nice, and as a bonus it makes it easier to run the tests through the module interface rather than by importing the sources directly, which I think is a good dog food approach.
This commit is contained in:
parent
ef185bc975
commit
40d898a55e
@ -113,63 +113,3 @@ pub const Message = opaque {
|
|||||||
// NATS_EXTERN const char* stanMsg_GetData(const stanMsg *msg);
|
// NATS_EXTERN const char* stanMsg_GetData(const stanMsg *msg);
|
||||||
// NATS_EXTERN int stanMsg_GetDataLength(const stanMsg *msg);
|
// NATS_EXTERN int stanMsg_GetDataLength(const stanMsg *msg);
|
||||||
// NATS_EXTERN void stanMsg_Destroy(stanMsg *msg);
|
// NATS_EXTERN void stanMsg_Destroy(stanMsg *msg);
|
||||||
|
|
||||||
test "message: create message" {
|
|
||||||
const subject = "hello";
|
|
||||||
const reply = "reply";
|
|
||||||
const data = "world";
|
|
||||||
|
|
||||||
const nats = @import("./nats.zig");
|
|
||||||
|
|
||||||
// have to initialize the library so the reference counter can correctly destroy
|
|
||||||
// objects, otherwise we segfault on trying to free the memory.
|
|
||||||
try nats.init(-1);
|
|
||||||
defer nats.deinit();
|
|
||||||
|
|
||||||
const message = try Message.create(subject, reply, data);
|
|
||||||
defer message.destroy();
|
|
||||||
|
|
||||||
const message2 = try Message.create(subject, null, data);
|
|
||||||
defer message2.destroy();
|
|
||||||
|
|
||||||
const message3 = try Message.create(subject, data, null);
|
|
||||||
defer message3.destroy();
|
|
||||||
|
|
||||||
const message4 = try Message.create(subject, null, null);
|
|
||||||
defer message4.destroy();
|
|
||||||
}
|
|
||||||
|
|
||||||
test "message: get subject" {
|
|
||||||
const nats = @import("./nats.zig");
|
|
||||||
|
|
||||||
try nats.init(-1);
|
|
||||||
defer nats.deinit();
|
|
||||||
|
|
||||||
const subject = "hello";
|
|
||||||
const message = try Message.create(subject, null, null);
|
|
||||||
defer message.destroy();
|
|
||||||
|
|
||||||
const received = message.getSubject();
|
|
||||||
try std.testing.expectEqualStrings(subject, received);
|
|
||||||
}
|
|
||||||
|
|
||||||
test "message: get reply" {
|
|
||||||
const nats = @import("./nats.zig");
|
|
||||||
|
|
||||||
try nats.init(-1);
|
|
||||||
defer nats.deinit();
|
|
||||||
|
|
||||||
const subject = "hello";
|
|
||||||
const reply = "reply";
|
|
||||||
const message = try Message.create(subject, reply, null);
|
|
||||||
defer message.destroy();
|
|
||||||
|
|
||||||
const received = message.getReply() orelse return error.TestUnexpectedResult;
|
|
||||||
try std.testing.expectEqualStrings(reply, received);
|
|
||||||
|
|
||||||
const message2 = try Message.create(subject, null, null);
|
|
||||||
defer message2.destroy();
|
|
||||||
|
|
||||||
const received2 = message2.getReply();
|
|
||||||
try std.testing.expect(received2 == null);
|
|
||||||
}
|
|
||||||
|
@ -158,7 +158,3 @@ pub const MessageList = opaque {
|
|||||||
nats_c.natsMsgList_Destroy(@ptrCast(self));
|
nats_c.natsMsgList_Destroy(@ptrCast(self));
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
test {
|
|
||||||
std.testing.refAllDecls(@This());
|
|
||||||
}
|
|
||||||
|
5
tests/main.zig
Normal file
5
tests/main.zig
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
const std = @import("std");
|
||||||
|
|
||||||
|
test {
|
||||||
|
_ = @import("./message.zig");
|
||||||
|
}
|
59
tests/message.zig
Normal file
59
tests/message.zig
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
const std = @import("std");
|
||||||
|
const nats = @import("nats");
|
||||||
|
|
||||||
|
// const nats = @import("../src/nats.zig");
|
||||||
|
// const message = @import("../src/message.zig");
|
||||||
|
|
||||||
|
test "message: create message" {
|
||||||
|
const subject = "hello";
|
||||||
|
const reply = "reply";
|
||||||
|
const data = "world";
|
||||||
|
|
||||||
|
// have to initialize the library so the reference counter can correctly destroy
|
||||||
|
// objects, otherwise we segfault on trying to free the memory.
|
||||||
|
try nats.init(-1);
|
||||||
|
defer nats.deinit();
|
||||||
|
|
||||||
|
const message = try nats.Message.create(subject, reply, data);
|
||||||
|
defer message.destroy();
|
||||||
|
|
||||||
|
const message2 = try nats.Message.create(subject, null, data);
|
||||||
|
defer message2.destroy();
|
||||||
|
|
||||||
|
const message3 = try nats.Message.create(subject, data, null);
|
||||||
|
defer message3.destroy();
|
||||||
|
|
||||||
|
const message4 = try nats.Message.create(subject, null, null);
|
||||||
|
defer message4.destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
test "message: get subject" {
|
||||||
|
try nats.init(-1);
|
||||||
|
defer nats.deinit();
|
||||||
|
|
||||||
|
const subject = "hello";
|
||||||
|
const message = try nats.Message.create(subject, null, null);
|
||||||
|
defer message.destroy();
|
||||||
|
|
||||||
|
const received = message.getSubject();
|
||||||
|
try std.testing.expectEqualStrings(subject, received);
|
||||||
|
}
|
||||||
|
|
||||||
|
test "message: get reply" {
|
||||||
|
try nats.init(-1);
|
||||||
|
defer nats.deinit();
|
||||||
|
|
||||||
|
const subject = "hello";
|
||||||
|
const reply = "reply";
|
||||||
|
const message = try nats.Message.create(subject, reply, null);
|
||||||
|
defer message.destroy();
|
||||||
|
|
||||||
|
const received = message.getReply() orelse return error.TestUnexpectedResult;
|
||||||
|
try std.testing.expectEqualStrings(reply, received);
|
||||||
|
|
||||||
|
const message2 = try nats.Message.create(subject, null, null);
|
||||||
|
defer message2.destroy();
|
||||||
|
|
||||||
|
const received2 = message2.getReply();
|
||||||
|
try std.testing.expect(received2 == null);
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user