test: cert expiry epoch with `generalTime` formatted

This commit is contained in:
JimMoen 2024-07-04 18:18:13 +08:00
parent 8c6cd69caa
commit d84d31cbc5
No known key found for this signature in database
4 changed files with 40 additions and 2 deletions

View File

@ -13,7 +13,6 @@ rel/example_project
emqx_prometheus.d emqx_prometheus.d
ct.coverdata ct.coverdata
logs/ logs/
data/
test/ct.cover.spec test/ct.cover.spec
cover/ cover/
erlang.mk erlang.mk

View File

@ -78,6 +78,10 @@
do_stop/0 do_stop/0
]). ]).
-ifdef(TEST).
-export([cert_expiry_at_from_path/1]).
-endif.
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
%% Macros %% Macros
%%-------------------------------------------------------------------- %%--------------------------------------------------------------------
@ -943,7 +947,7 @@ cert_expiry_at_from_path(Path0) ->
{ok, PemBin} -> {ok, PemBin} ->
[CertEntry | _] = public_key:pem_decode(PemBin), [CertEntry | _] = public_key:pem_decode(PemBin),
Cert = public_key:pem_entry_decode(CertEntry), Cert = public_key:pem_entry_decode(CertEntry),
%% TODO: Not fully tested for all certs type %% XXX: Only pem cert supported by listeners
not_after_epoch(Cert); not_after_epoch(Cert);
{error, Reason} -> {error, Reason} ->
?SLOG(error, #{ ?SLOG(error, #{

View File

@ -0,0 +1,21 @@
-----BEGIN CERTIFICATE-----
MIIDfzCCAmegAwIBAgIUJ3pE/Dwffa5gKNHY2L8HmazicmowDQYJKoZIhvcNAQEL
BQAwZzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWExFjAUBgNVBAcM
DVNhbiBGcmFuY2lzY28xFTATBgNVBAoMDEV4YW1wbGUgSW5jLjEUMBIGA1UEAwwL
ZXhhbXBsZS5jb20wIBcNMjQwNzAzMTAyOTMzWhgPMjA1NDA2MjYxMDI5MzNaMGcx
CzAJBgNVBAYTAlVTMRMwEQYDVQQIDApDYWxpZm9ybmlhMRYwFAYDVQQHDA1TYW4g
RnJhbmNpc2NvMRUwEwYDVQQKDAxFeGFtcGxlIEluYy4xFDASBgNVBAMMC2V4YW1w
bGUuY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArFZKxzsxCaGP
rVhilTd4PKk9jVrBLQ4xaFG6tmmlzjBCp+E35EulND4gpWZSUs9bYO/C+qykKmrL
J7TddGBVXe6lbl6mMHqZzHUp9mJdvPBSHcqOHc2E/UiBwOpN4tatx6UdK+VEQySr
z+dtc0Az5Itkoy/SvAu1Zzdq3d3MfxaTUvCmWfeR2huTalNQkG1jQ0C2CjCU9Z1f
Ex+y1MzxNhVrrdExC8Vwrb4TDlue8/XwJ4A4gBJYNbVAwALcSKnF56nRib3evE3J
Irvy2Rt4aC694JawWLPzJ1e2Rz8WBzCRPJAmaV4iD66sU8BMkmbCV+mMmF673s3R
sS4kGqklvQIDAQABoyEwHzAdBgNVHQ4EFgQU0tDKnCDey6fKrzs7caDfS41Dii4w
DQYJKoZIhvcNAQELBQADggEBAEIKvrSuUgpkIEUDV+UMr/5xUKkDyjNi4rwkBA6X
Ej0HskXg6u9wOIkBKwpQbleDFICdyqXMhGMjN4050PQCizaInBJBz77ah47UwGGQ
P+wavbcdHR9cbhewhCo6EtbCclPY1LXq4OFkgHMToLFzXC4S/kLX/KrhVApGHskO
Ad4U4gmMtIalruz5Mzc4YuSaAjbRI9v0IxhvS8JU0uoOwhIstkrMlFc26SU6EcZ9
k88gVmmqEnsvmJi4gn4XPgvJB8hPs0/OMDBCVjAM8VaxZZ6sqlTT9FTGaKbIJdDc
KjT7VdbhVcuZo4s1u9gQzJNU2WHlHLwZi1wCjTC1vTE/HrQ=
-----END CERTIFICATE-----

View File

@ -211,6 +211,16 @@ t_push_gateway(_) ->
ok. ok.
t_cert_expiry_epoch(_) ->
Path = some_pem_path(),
?assertEqual(
2666082573,
emqx_prometheus:cert_expiry_at_from_path(Path)
).
%%--------------------------------------------------------------------
%% Helper functions
start_mock_pushgateway(Port) -> start_mock_pushgateway(Port) ->
ensure_loaded(cowboy), ensure_loaded(cowboy),
ensure_loaded(ranch), ensure_loaded(ranch),
@ -249,3 +259,7 @@ init(Req0, Opts) ->
RespHeader = #{<<"content-type">> => <<"text/plain; charset=utf-8">>}, RespHeader = #{<<"content-type">> => <<"text/plain; charset=utf-8">>},
Req = cowboy_req:reply(200, RespHeader, <<"OK">>, Req0), Req = cowboy_req:reply(200, RespHeader, <<"OK">>, Req0),
{ok, Req, Opts}. {ok, Req, Opts}.
some_pem_path() ->
Dir = code:lib_dir(emqx_prometheus, test),
_Path = filename:join([Dir, "data", "cert.crt"]).