From 777725868123f0501dd652b4390884ae924fdced Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Niemier?= <~@hauleth.dev> Date: Fri, 30 Jan 2026 23:44:20 +0100 Subject: [PATCH] Test encoding and decoding of Unix extended stat data This is for now just silly and basic test for elemental encoding and decodeing. It doesn't do any serious stress testing. For that there is need for property test, but it should work for now. --- src/e9p_server.erl | 1 - test/e9p_msg_SUITE.erl | 23 +++++++++++++++++++++++ 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/e9p_server.erl b/src/e9p_server.erl index 4c0f436..b524f56 100644 --- a/src/e9p_server.erl +++ b/src/e9p_server.erl @@ -161,6 +161,5 @@ handle_message(#twstat{fid = FID, stat = Stat}, State) -> {ok, NewState} ?= do_call(State, wstat, [FID, Stat]), {ok, #rwstat{}, NewState} end; - handle_message(_Msg, State) -> {error, ~"Unknown request type", State}. diff --git a/test/e9p_msg_SUITE.erl b/test/e9p_msg_SUITE.erl index 449f7fd..5d655de 100644 --- a/test/e9p_msg_SUITE.erl +++ b/test/e9p_msg_SUITE.erl @@ -14,6 +14,7 @@ all() -> [ stat_encode_decode, + stat_encode_decode_unix, rstat_encode_decode, rclunk_encode_decode, rflush_encode_decode, @@ -39,6 +40,28 @@ stat_encode_decode(_Conf) -> Decoded = e9p_msg:parse_stat(Out), ?assertEqual({ok, Stat}, Decoded). +stat_encode_decode_unix(_Conf) -> + Stat = #{ + type => 0, + dev => 0, + qid => e9p:make_qid(regular, 0, 0), + mode => 0, + atime => 0, + mtime => 0, + length => 0, + name => <<>>, + uid => <<>>, + gid => <<>>, + muid => <<>>, + ext => <<>>, + n_uid => 0, + n_gid => 0, + n_muid => 0 + }, + Out = iolist_to_binary(e9p_msg:encode_stat(Stat, unix)), + Decoded = e9p_msg:parse_stat(Out), + ?assertEqual({ok, Stat}, Decoded). + rstat_encode_decode(_Conf) -> Stat = #{ type => 0, -- 2.51.2