From 3ebd51c0961e39cf11e08b6ff26b4eebde437774 Mon Sep 17 00:00:00 2001 From: Yuri Astrakhan Date: Wed, 8 Nov 2023 18:26:55 -0500 Subject: [PATCH] Minor cleanup and just reorg Only run git push diff on linux to make development on non-linux easier, and a few preparations for pmtiles over http serving --- Cargo.toml | 1 + docs/src/30-config-file.md | 6 +-- justfile | 46 +++++++++++------- martin/src/config.rs | 8 +-- martin/src/file_config.rs | 31 ++++++++---- tests/config.yaml | 1 + tests/expected/auto/webp2_1_0_0.png | Bin 0 -> 10658 bytes tests/expected/auto/webp2_1_0_0.png.txt | 1 + tests/expected/configured/catalog_cfg.json | 4 ++ tests/expected/configured/pmt2_0_0_0.png | Bin 0 -> 11586 bytes tests/expected/configured/pmt2_0_0_0.png.txt | 1 + tests/expected/generated_config.yaml | 4 +- tests/expected/given_config.yaml | 1 + .../{pmtiles => pmtiles2}/webp2.pmtiles | Bin tests/test.sh | 8 +-- 15 files changed, 75 insertions(+), 37 deletions(-) create mode 100644 tests/expected/auto/webp2_1_0_0.png create mode 100644 tests/expected/auto/webp2_1_0_0.png.txt create mode 100644 tests/expected/configured/pmt2_0_0_0.png create mode 100644 tests/expected/configured/pmt2_0_0_0.png.txt rename tests/fixtures/{pmtiles => pmtiles2}/webp2.pmtiles (100%) diff --git a/Cargo.toml b/Cargo.toml index 1bd28c932..8bbd2d30b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -69,3 +69,4 @@ similar.opt-level = 3 #[patch.crates-io] #sqlite-hashes = { path = "/home/nyurik/dev/rust/sqlite-hashes" } +#pmtiles = { path = "../pmtiles-rs" } diff --git a/docs/src/30-config-file.md b/docs/src/30-config-file.md index a4df42845..99817a061 100644 --- a/docs/src/30-config-file.md +++ b/docs/src/30-config-file.md @@ -158,11 +158,11 @@ pmtiles: paths: # scan this whole dir, matching all *.pmtiles files - /dir-path - # specific pmtiles file will be published as pmtiles2 source - - /path/to/pmtiles.pmtiles + # specific pmtiles file will be published as a pmt source (filename without extension) + - /path/to/pmt.pmtiles sources: # named source matching source name to a single file - pm-src1: /path/to/pmtiles1.pmtiles + pm-src1: /path/to/pmt.pmtiles # Publish MBTiles files mbtiles: diff --git a/justfile b/justfile index 873c8aa9b..c17c6de58 100644 --- a/justfile +++ b/justfile @@ -3,6 +3,7 @@ set shell := ["bash", "-c"] #export DATABASE_URL="postgres://postgres:postgres@localhost:5411/db" + export PGPORT := "5411" export DATABASE_URL := "postgres://postgres:postgres@localhost:" + PGPORT + "/db" export CARGO_TERM_COLOR := "always" @@ -12,7 +13,7 @@ export CARGO_TERM_COLOR := "always" #export RUST_BACKTRACE := "1" @_default: - {{just_executable()}} --list --unsorted + {{ just_executable() }} --list --unsorted # Start Martin server run *ARGS: @@ -29,7 +30,7 @@ run-release *ARGS: start # Start Martin server and open a test page debug-page *ARGS: start open tests/debug.html # run will not exit, so open debug page first - {{just_executable()}} run {{ ARGS }} + {{ just_executable() }} run {{ ARGS }} # Run PSQL utility against the test database psql *ARGS: @@ -75,8 +76,9 @@ alias _stop-db := stop # Restart the test database restart: - {{just_executable()}} stop - {{just_executable()}} start + # sometimes Just optimizes targets, so here we force stop & start by using external just executable + {{ just_executable() }} stop + {{ just_executable() }} start # Stop the test database stop: @@ -113,9 +115,9 @@ test-ssl-cert: start-ssl-cert export PGSSLROOTCERT="$KEY_DIR/ssl-cert-snakeoil.pem" export PGSSLCERT="$KEY_DIR/ssl-cert-snakeoil.pem" export PGSSLKEY="$KEY_DIR/ssl-cert-snakeoil.key" - {{just_executable()}} test-cargo --all-targets - {{just_executable()}} clean-test - {{just_executable()}} test-doc + {{ just_executable() }} test-cargo --all-targets + {{ just_executable() }} clean-test + {{ just_executable() }} test-doc tests/test.sh # Run all tests using the oldest supported version of the database @@ -134,12 +136,18 @@ test-int: clean-test install-sqlx #!/usr/bin/env bash set -euo pipefail tests/test.sh - if ! diff --brief --recursive --new-file tests/output tests/expected; then - echo "** Expected output does not match actual output" - echo "** If this is expected, run 'just bless' to update expected output" - exit 1 + if [ "{{ os() }}" != "linux" ]; then + echo "** Integration tests are only supported on Linux" + echo "** Skipping diffing with the expected output" else - echo "Expected output matches actual output" + echo "** Comparing actual output with expected output..." + if ! diff --brief --recursive --new-file tests/output tests/expected; then + echo "** Expected output does not match actual output" + echo "** If this is expected, run 'just bless' to update expected output" + exit 1 + else + echo "** Expected output matches actual output" + fi fi # Run integration tests and save its output as the new expected output @@ -180,8 +188,8 @@ coverage FORMAT='html': (cargo-install "grcov") rustup component add llvm-tools-preview ;\ fi - {{just_executable()}} clean - {{just_executable()}} start + {{ just_executable() }} clean + {{ just_executable() }} start PROF_DIR=target/prof mkdir -p "$PROF_DIR" @@ -252,11 +260,15 @@ clippy: # These steps automatically run before git push via a git hook [private] -git-pre-push: stop start +git-pre-push: env-info restart lint test + +# Get environment info +[private] +env-info: + @echo "OS is {{ os() }}, arch is {{ arch() }}" + {{ just_executable() }} --version rustc --version cargo --version - {{just_executable()}} lint - {{just_executable()}} test # Update sqlite database schema. prepare-sqlite: install-sqlx diff --git a/martin/src/config.rs b/martin/src/config.rs index 625485e01..e165b8bca 100644 --- a/martin/src/config.rs +++ b/martin/src/config.rs @@ -90,8 +90,8 @@ impl Config { } async fn resolve_tile_sources(&mut self, idr: IdResolver) -> Result { - let create_pmt_src = &mut PmtSource::new_box; - let create_mbt_src = &mut MbtSource::new_box; + let new_pmt_src = &mut PmtSource::new_box; + let new_mbt_src = &mut MbtSource::new_box; let mut sources: Vec>>>> = Vec::new(); for s in self.postgres.iter_mut() { @@ -99,12 +99,12 @@ impl Config { } if !self.pmtiles.is_empty() { - let val = resolve_files(&mut self.pmtiles, idr.clone(), "pmtiles", create_pmt_src); + let val = resolve_files(&mut self.pmtiles, idr.clone(), "pmtiles", new_pmt_src); sources.push(Box::pin(val)); } if !self.mbtiles.is_empty() { - let val = resolve_files(&mut self.mbtiles, idr.clone(), "mbtiles", create_mbt_src); + let val = resolve_files(&mut self.mbtiles, idr.clone(), "mbtiles", new_mbt_src); sources.push(Box::pin(val)); } diff --git a/martin/src/file_config.rs b/martin/src/file_config.rs index 62d8ab30e..50a57e458 100644 --- a/martin/src/file_config.rs +++ b/martin/src/file_config.rs @@ -140,11 +140,24 @@ pub enum FileConfigSrc { } impl FileConfigSrc { - pub fn abs_path(&self) -> Result { - let path = match self { + #[must_use] + pub fn into_path(self) -> PathBuf { + match self { + Self::Path(p) => p, + Self::Obj(o) => o.path, + } + } + + #[must_use] + pub fn get_path(&self) -> &PathBuf { + match self { Self::Path(p) => p, Self::Obj(o) => &o.path, - }; + } + } + + pub fn abs_path(&self) -> Result { + let path = self.get_path(); path.canonicalize().map_err(|e| IoError(e, path.clone())) } } @@ -158,12 +171,12 @@ pub async fn resolve_files( config: &mut FileConfigEnum, idr: IdResolver, extension: &str, - create_source: &mut impl FnMut(String, PathBuf) -> Fut, + new_source: &mut impl FnMut(String, PathBuf) -> Fut, ) -> Result where Fut: Future, FileError>>, { - resolve_int(config, idr, extension, create_source) + resolve_int(config, idr, extension, new_source) .map_err(crate::Error::from) .await } @@ -172,7 +185,7 @@ async fn resolve_int( config: &mut FileConfigEnum, idr: IdResolver, extension: &str, - create_source: &mut impl FnMut(String, PathBuf) -> Fut, + new_source: &mut impl FnMut(String, PathBuf) -> Fut, ) -> Result where Fut: Future, FileError>>, @@ -204,7 +217,7 @@ where FileConfigSrc::Obj(pmt) => pmt.path, FileConfigSrc::Path(path) => path, }; - results.push(create_source(id, path).await?); + results.push(new_source(id, path).await?); } } @@ -248,7 +261,7 @@ where FileConfigSrc::Obj(pmt) => pmt.path, FileConfigSrc::Path(path) => path, }; - results.push(create_source(id, path).await?); + results.push(new_source(id, path).await?); } } @@ -288,7 +301,7 @@ mod tests { paths, vec![ PathBuf::from("/dir-path"), - PathBuf::from("/path/to/file2.ext") + PathBuf::from("/path/to/file2.ext"), ] ); assert_eq!( diff --git a/tests/config.yaml b/tests/config.yaml index cecc48aa7..06ed8f98b 100644 --- a/tests/config.yaml +++ b/tests/config.yaml @@ -163,6 +163,7 @@ postgres: pmtiles: sources: pmt: tests/fixtures/pmtiles/stamen_toner__raster_CC-BY+ODbL_z3.pmtiles + pmt2: tests/fixtures/pmtiles2/webp2.pmtiles sprites: paths: tests/fixtures/sprites/src1 diff --git a/tests/expected/auto/webp2_1_0_0.png b/tests/expected/auto/webp2_1_0_0.png new file mode 100644 index 0000000000000000000000000000000000000000..6025b45363ced19ef42214f0fe0aacc3680f72b0 GIT binary patch literal 10658 zcmV;TDP7i5Nk&GRDF6UhMM6+kP&gotDF6WQ2?3n}DgXii0zPdtl}Dr_DWNHpNtrMW ziD_=(a(*burFaZ^$4;+@1I53c@0#{Is%r=J;qAlq8RU-vch}Q%&a#EyMgQkyAn^bD zctZc^^@tZTjF9^jzA=zX<^bQv-{bG`_xSt#ef~cGAAgU($KT`c@%Q-q{C)mD{~o@t zL%#fRj8@)# z1Ao|lGJ2Uh?kZl#k-D1%C&i-iNA%AE#Fnxq0N=;oCZ~i6&PKNWDaeuxN2j#BBitq9C-mjad8&POnrit2|Vpej(Hv~GX{d7UH(4*AAgTE znB_eVGL_bz9AQ=V+7C_;sG}APrSD<043ZmE!OkVq88J@6Ci-J#<^nQkz1VV+@c5+( zs|ppOL+n!cy=lnN!+@!~N*Kq=0xNC{Tiuu2{9LZbD(=lKIeF_(az#S*_%`Wc)wNPUW57#d>rX$JOEa&@SE`6wJB?T<8M2hfhURM?BlaW&L4xoWHFZ83axy-;xcXmIVAZ`umm0FV^!KRiE*BQHr1n6 zGP@HNafhe@WK03SkGl5dNHmYa+Zkp527+wxt-Cl68I~UbboaVp73S6U)shl~SgndA zM!r0OJwTGpL4&7rZ-U?g^?0JZV)@sy2DC!?dlOlA52*_!L_%n58U{cWK#NGsX;gW{ zO|REs+Q;h7>;I*Jw-`RQ9|N;q}z47t9cIrijX zcjajapm3hZ)mo*ICT{)S8*Ch!-KY=}iTH;J4X7O4LA@{X#^$-GHBu+Cff8dd1zMOV zGPi{HewcpT9@SKkpg%X?R~oD~`)tlK0-MK0E^Z@uCqYTNS)@Pu+(Sy&<#U_(67(m1 zO#7BBfTi$Ap*cQw|EJGz`T-zu1Gt6OQB?UT74KuFbm_7eJWOz}NLN~Lm9tegbOIUE zWD7C9ROJ>tz++Gv^DY!Wy6v=+#BAn#d3NKV#{#Zier+Q2suEk$cbK9cSK{+Y?78nJ z^OoYhltXuFO~!(E{L*=gFH;L20yyb4aU4SyEDLSk@6SN=H=e|oJ2HRyK%fzI(AEv{ z5LT~zRP#GgA@0>Y&23%^dk2Y6-^XXMxquii3Uf)VPU_&e!U=INVKg)O98jTYh8%Jz zVjE>Ho7hg5}n?b+>kix$XeJk8aB>dCv9K|Atm|m1r*LM@S zsEbbEr)XNb;ZC=}%*VQR-^bs~h^3>Fn~(%QNFbUTF>9uJ`1I0SO94tjzKdu#G8Ln! zZHC@S7!!X=+WJ{%cbuh{H_`ay>5A3!58+LzRI<;~j8M=}3E_p7#~?!$+rB>J?_jES z>s<{Hf&7TE=MAm7KH`ur={{Ngyc z%l*0qiApMNhXc62qy~Gt`Q|fBDj4P%5lG&np*YKCbM{#ZBs}s5bYi<|TQ~j6@2sOF zKCno9Es?eiJcF%RMad7bNCHi2 zO0>*YQIZ~%ct&(+>O6y{N)8CqWGaRO&Z0qE9{WfT92sq{J-zI3cwQoalKFr(Jf(sS zu87kge~-Ux+RzoWkrirxmwq%~>?y!Ecq*pvF{&n59~He>4)_KNg9FS~$!$r}N8jV`@e@lj z(fdUE*$8jA`$@nQg8#1cafG43?&!$~(W3PEd~*l@{`bg$000000000Tv9Qkjn9zWL zqH{<+W_49Lm9U>(!TLIpC&PHpiq+#^TF&hdcG+!gf>>5JsrK!hhVPD4h>Zf9jW7Wm zW3P*#!fV<=&;S>}7Y&GOt7CAH`)K2cN)(V07(A%jNhpbjx0gaIK!v)Ci;XMIOF?Tb zlT$?$fmh=d+c`h8W&8@4r6%i7cb543uph-;nJ(D$kIBN9VIC4eDlj{)a9ruJLFO=D z6o}tC>#(O37P(eg{5CM;2R6-93~dFh2QQfh7pJFonHj$MBC#EFX`>wzRiI)4y|3%3 zrJcV?Svl=`L5IHMd93tr3K2APNsD6!nc|=yxU(9Jpf^*2+OIemLS+}$c20#gJk8(^ z;d7AY5#!T5)##TBRB@PfaY2w&MG_{4sv+ zm#jIZQ(9aLispS>jrLMY}g|O9T&m**uWo8*^}w&#viy z&!Qn4-EbW$zDbL#rXj6BL(Tn;cyY8U7LzusOsz=1Ehe=rHhF)IJOQI#hK`3D-n$NL z#G3c&Rhge1pWY0B5iL!diw)tN*QH zd%-D*1o?$bzpsNKsF@+_*$w8A;>!RpW;s04_)Ox?9do%Jzw6%Qq9wDbO$4X=$OKC? z_lgomr|7HMM6!oP*6LFFUaLpkVaGJ>^XC*O+M8_*1rMLdiwOH%zzaNRQK_Fa&EAvI ziOk9vD;ey0(nsN=4gfsUNE&;;oz#%$Hvr!albDm#%0l(1P{1?~wn9;%y)bMoUl1e! z%Lq7x*H$2Rq_Cn6SAY4pm*zc(o0N=HWb2P|0~ZY0AiRr3<_&S&{_2TmJMSCT*Ii1r z`!?)VTE!9MjdU9ab{#2FFGpK?^hBwV@NSG$(UTen8ljR?5&L4Fz_nsv2b_zI!$O1`W(X5L2|$QsEF!&VEoj2~kJYr+r znAsI1>^rMN;FL6*^M!SO8oyR@i6h=lo=UZQmUPbeQD(sZH0b~eP-z94IWQ(1r&PB+ znOvm^a1dM5YjzLBUbr^Z3K?dhcz~8K&)^WloIB1Xim{)R!aBMC++GAnV!m?ilSX$L z>1oNGgx=zKKh3>)dcj>fSXqo)G%vjer#t!nA;6^~@mjTY$U+eAobK1ALuwM{Dh+q( zR@)KKG&{I?-s1h_q*EeYT?UTKi`~nc+(IP|p)uo#XA+k6pyI>+ylZ^}f`0+(g|CleN7?@j)bs-oHeza~Z^SuNh*48{D$0K@6CGh)sAu97 z4CXF-BO?7Hc}5_&%~Ck6ZFN3a8BPT=(kYWkna>jN_wIWzqj|MbK7hv5fW=n!%GM_R z6a#C%PUDWuKkGolpAy}Ihj+)mObvR1qh@NUQb&2#v^1){onIdq4q4nfGO(=GFf>*7 z6*7k$niM52Dj^S$LTmmrmVQpirYYgp=06$c{LtOU$PWd7@a0A|p?&$Z?2A8fIWBuu zp^MwBrm4mbQj94wa3d(4In0PX#q!9UJc?)yia9s_FAjmx7j#R*WX8 zx=j)N;4cNBlA$qLR$81GOs~O{MR~6;Yqzd0DXCI(5XjV9FaSxylOrDxVapQhAM{8> zEPYiE_+Vy1-6dxMozcj+|DF`NtFL-4wl!V=DzoJoS9Vib=$fcx=*CNdLnJP$;6io# zwPrSm5UX{zWcRFQroG}*7D;8$7~((~-y(BelR#tHzZCZ6Wz7OnDfG|$k}k_d>s5X3 z4;90!iV@U_v*l-(2`Zu;Z0u1lN>2j5-wJx~rgB_0fA6`ab-hqyp2T{X0XSeEc~vC( zwrntZl70 z|K+!n>S<)kj(2^Xn6$_dlRKcex*}r^kM+K`qygpRS$BI$0Zx)#P;lJqI^B-FW+Fj| zlSM*Ag6o!SA|50z)qei(6J!MWcAZa{-Tv;?qUq=h+9RYa*%{-U)f*w-BW0;9%T8MO zTJ`erHMnTm*xY`j!BQWY3w3MSpO-$%ad`{tfe5V)9;!!Vyom;TQQ?xGDJ75bGqi$q z(KdZJGTglXF~W``4D7uD*rv1J5%9(0!9mi?tO5e^qR&V}U5^ z_N%&9Q2RR?jR>|YSGQ5iZLu*o6>o;=p!KTNu>rUxkY9_&dSq(Nx+?>wrJzBsv<`jSpU_D+pKj zmXjX+@c1*)y>-#mcPo*gi#!8c>$|r*(#zN8Sem6wz08EW1@PjzDVK<`!rMoOy`v&V%?-aMRzx@(Z3m{I+IWCENaiHpT9(cTdcRJe6##3u`eSGK z;sSH+c00I5m0E-?N3$=dz+{b-mJVll>5n~+n`oU+CBKhb?J5J*z+C+QlR*!kAUsSt z-`_Z9z{_OSL^*%Dr4A$^08WlP2A7i#wF_AHdQjqgDX-$}AQexq`00jI|@ zYynZWh=c>1d`m!0qL<&P$2dc0=_@asIs(S&m!=~`wc_#)2lkB5DrCT${z>H z86ItK9@s5}w|rH7W&~*NW-@Roy#-Vl(!~-(52&zGYu9!(wfpQOF_pfFAx?CZ;YFPW zzLUFLODGhSB3PLvvpYh@#dSd(gdVDHs{W7+cWz8GbpH%Rh>mg-C!cOQLl@ z&c*B&mL-G~mWb8&xMg~x~FB8I8u|tH>2twv9?Rt0T)rhP{NxT?!ZiML<}#Q-9ol( zU%Qu6=VK6?Qio_m&R3)#@~d=Cp%a8{C{P=vOW%@t*^KN8Wy>4aG*@5^7OlH+nPqa1 z0Qo|qvHadyi1c0T;fv6XoHq|6%!&R5U41kP;UtcO;PzVTh-54oiE1bhH6ESIiCY30 z&GvI0s!IqmaZgPW-md0llS_x%Q{IMat{@ zZp}4&*VEAb;MjPv+yOOEZ$4ehKX3{TWuAzV1!-f=B!O8xhZ+)u?#^Q6Jv$nfjQQ^D zWI^YN`yOBTx}E)Js2`5#efr=ZjbPr&;L+S_i;x8vmi~T!9_n|PW6g;>>t~;ZWB?6KU9rT{YEhlr|jl$N%TvYV=cq?|0&)(d;R zO+NU$f4++H*Z;evpst4(jDwM_zP%!=1c|YYIUE+&BiUB8D9`RbdLKN-82&egdQqkV z!uebdjXcwAwt?%RZAFf-BFqQAO-2VrYn~72syx1`vk5w;3uaN*)y3(Z8}=7$B|mwIQ;tS1YC3{5Rn! zHX8{|3wc1-_I?3$WYo4wmcvHvzS1E9wDqni@$?IHNI!t;ABbFt_PMy(Kosk%Lb~?` z&!|xH3kre@kNaRgW7JfzPvgN@QJ&TnRb*>liYK9s$fz>7hs9#%^ZB^O5JA&o_;OuV zchqo_nM#S`LD`NFy=rQw4TTpFPLL*#53UY=ND6;ZRsa1ceR&-PW8&6+E4GYY-qZ=R z-R4yRI2@}M*nZ)x`w6|1o;6*KJinh8-Q3RS~u@` z;{=A**J$rf_%10M0&P7jGK0T{(jHWXtKJ~JA?dv9$O2!Q4$ zG^q{M{J=^ZA@dicI@&z2wjvyp@C#cJMP&Qs%CMjvK@I;8p+Bvd;Cxu2xORL`f8$Bdhi38{nata9 zCzAC9;0<8;7=yc1*xo-9;?N;UJm(}=e8*VScTR|m7QaLc^fV9Po+qSt!)_-ti8w3U=w1j(pjPLj?f6Ja~bN20Qg)MJ+^+=bKIp@DA`E!};&Oj;Qaj4fm&kE2hH*_n>MP8KO=*5@3y6PUit@Gor%O8)Z{d zl$+3Tx>#a-n>Mb~ZhjZJj(}%ZYIiWj`fd#snVe zj8gtZWF6C9X={9Sv0hpc-6_slwNUx{j#?i?If{^8GTwBrtrYf-`i6b@o?{POdAGZ| zhlA3iA=5G#vQ-rd0_J^$d0-ovoedmPmll&n&~0#?9mtYPaMCX_+)KHjxCOdJCJ}aw zq+}yvq!@+}gvW7tm&Awl6}p_0TlR?fBGe33WGESceGI7xQC8kFdTfC|iJGl#Mwir% z^I}wJ=t2Yqb_L-KZePAR!nU>qr2b?}gBN|glTxLqBYpyw^NK!KKFwtkR!Dt}?yY|b zlnz!@yn>R}OJ3@Jz6x^1`6)C3NVOdd31LthNcu^wIJOobKt2G#Ub7VWIo{UIqKJ76 z;eLTzy&IKT1xGMBX-I-DAv!^635P$I*em1L>B-I6Pr^reEEKZ^gVb`R3lJYF`7s`2 zU}FX* z-36iiwsTq?_xeI<2r5z6XQL_42|AEMc960){OELE!Hd3_pKmAo8~n@sy|XMV?C~3p z-EwKjVq_)Ic1&!8OZMyT>M|a?B!?lIEO%dfO6=iLjiOE@=6#UQZ4RY3*a-cvo8G$q zuVO*ol6A%3iu%sf8)wXH`;Tbq%!Y8h6@V0dw|xl6992SjS+3br!QB^1oWw}JnpE#Q znaLRwjPu-d06tR_Yrf}cyTtbnL_lTtnem`L23JROQUo)k2>S zKNYBouj$5S`Na_^1*xn=`6|LbSCPCAomfc3g}EYkG()(cH8?*M)ItT9=RAy8(>86U zb&Dfg&@-Mx7swMPKxKNWd=?=GSJ20Hp#Y;zg1k|Q9aJ1$K(cf>b(1G+I|S>Fl>17Q zJXkt9np4&clYTH&z#0$*y%tCqM|s9A6eM=o@I$OzQ)I^5Ygjp&wg0r$_iZUu7IJXC z@LWT3P0UoOU;Gf$_f;>^TZ(T$G4}JJ&93!N^S>r4BFYA;pSX#zVTY$0Gp){3!lGUR zGhZ%?gNs8?(6+YB5;*Rh%PI}5yg-(iCtirFnwI@%>t zl}aXiF#D!^98@9maW``brgENq;4C)xQ*!O5I?uc{=aw30-T~WZ+v9;M;Jo2AU;`VkcS*zK9G28C`PD`UD5!0sR?lOsT6BCod=UlVFbo-Zk6 zn{ceYM%yTQ%Sr*qY$0B#2z!UL?+uERbUs7MI-6Yb(xr8GQHiIRd=Wg&6lsh2_1r$+ z30Seli$B~gZ)UfVfA;)SQvg{>1Y1O}aVzN3-7WR&3j^qlV93PQvc=ap-?xEbt$(YZ zh`cVxarX$m7fQW2%+dl%_kpetP3XA{ubTa_#9? z4hL9QpqXZ<9B~fB~WBK9g3Gv{b52kMhQ^D+@+8wj)F{U6-mI@#wI;>nPUbu=A zb=Y^QkMIDBs;fYRpo)1H#mwd}_;AJv-rVSc$Jb~cNZHEq(*nJ1+S}I_?quM6g|&1z zjEzFKy>&k3R60$*Nz?8oWR_l3=Aot=Hcx`F3#fB86W5CS4BA;_1gh2p7FA^!*~&HA zAKrV2MUFgd@GHZ)S_%6;Z#lXTsb8QX0nw}Q+tX7IIWJlgmB*>_}Ij>7G!)rc?MSvd_GC zz|Gua~dYSf%k(<1_y zALB61QwHdUV0rv-?sMd)EXjJa2(QF>1WcTgRJjFSLMCg{UNMGJF2zF;JynclY;$Y2 zH>);?Q-3(WdLCYARI&IY^m~(I$iPdB3>1PBcs6*jJ28Sc73k@Cgp~h=yax)pRT=tL zQIiw+G6V>2HkU{eOs119$Eyc{5~?&z6hv=W|-&?LF+9Y0FX!l`T2wl|l zsv7m=fTtoEl+V=&a@05LK&my9x>pL908bANP#^w`*(uwf1wH&fF-w%1h-(2e1?KYG zGZnnU><+J=T->1gspq!Vu5(B_`^XS1zRGhlXX3rpM1&G!Gw2G1mgS!D410fsBb`!~ z6*q$FUQP(d;vaeK_Lh3^v!<7KgKV()6P@HvI{?88U`bjnZKb-LHO_P|yu)~FpbDeR3$%V!7xUy3r z5ga|bp`Y4|U@8(N(-Y^~}{X|<1KW?NX4Dt0VcZlNiI!A@86$zL@K@lZDFM)dZ} zXyik#`}ul=>G2*-J!Xc}`Xm{>3v{OZf&^-1lp3`|H@IVd0yC{~T^%8W39Z2-hylV> z+-!|HEJP4q<3T@Hy%nm8opuwqXCFW9PF2+mv;(*KY#7sJGM##{>e0!20*%f$GVWZ- zbqb6M0Iwu|&PA^htTBa2Jre^EJlr%JD^wE;offSl*lH|o^KC{8YS$M*m=PG<46q~7 zv)OhTO=Zz*5_OYjwHHJe_r?*=v2BIR6}>wqC;~nbuFF$PN?*ySTU=TA*oRUp!=Q!P zZIFp!i1<;IZO>!E9Y)wg%Y@mhl+ypK+bT7T|L#Nd?AMdx5R<(qpa)tdgoE+TD^R6cd~NYTffg^utqSjj-Ha;jTe#~if%q^7Fo5yUbQuVIGB18$;!>TZyC=z z0#in`Jdrv`NhaUGb)4}bUPH0zZRrgEEADGpOoBgKA_81%LXdol9k7XsH|JPf8%TZg zFH3r%3}!)Cj(E-LH;|%5_?aS|WU(P9%53P9mrU0K+@PI#b-bQo-x7dqXj8zhKfPT`IJ&i$8%IT( znLBnLtTpSA!GuXl!_vdG&G_d_^Kv~gd*IC=b*MqiWIjX$5HPr)))By4p*gk0y12Mz zXi~aB0c&CPI?lAA?S&4E_lOauJ<8Z|AzznHSbtPhIZS@{ehwx52r?xAjTrW~w5ie< zT6X`^7)y%eg`G0mb26pcn7WRJvZR;;(ey`VZ&ifTnUZ6>eE1@(l{)42#z%^5f!-1y z17x{gXc2cHGDUx^YJIOYME=#TM}zo4DO3RAzb2zyFP$ zVq+dZ1$ibD%9?`HFCs!^L>PQ)i`GlW$?nIQ*X>+UArYKGEhd-=n3}+YQ+b#9Nq20M zKD&dn&U>r384`6O_Pv3WZ5wR^TiBoi!JDkCw5cKdhW1l1(42dEi|g~Fe|Tw5vZGfw zM&!?MA~sT8wCN>k5IhYU05wA7(jUYXvIHiTtY&bHy$K`WAbt@*C@iK%;DH#B|BPe= z%XA#&Fe+?G(uvt7I|9ao&S!*zd}#TxUq^Vim&4E>WW8XS1! z$JoqOc;uydI6Z`f&~~c#$)g6s8Vls0#=Kz8aIuz{-^u%7=4pebV>fCMoNVbZn^8+V zz)-13v+p=e$ub+~9ng~r1pevu5Pm%Wb!=_MhKv_ysxpENYNZDy#>MQp zjnt-jhm6eN%Gd7XkAC*-(&bpW>_K%R-Tx1sNzLITytx9?9f0|9$B>l|5v9S#5CBjx ziBBvZ(T=`T{kT3|(9@Y8!;Jr2*2?(jx92@IGol22=^l`Nv}d94jgHFo$ddDn9X0xO z_HE>*e5o9Yg(bo$D9QF{l!2jE6)LG;N@dGkaW^#^R{gJhzqx}s5|CSFa%41r(ZA=s zBnAPkMgJJufz4>>hog@`2EKVqJ@j~!Komlw!MQ>Gd;2hZ)&e{0`3)#BAk-I-qV+5Q I!wdib067_mmH+?% literal 0 HcmV?d00001 diff --git a/tests/expected/auto/webp2_1_0_0.png.txt b/tests/expected/auto/webp2_1_0_0.png.txt new file mode 100644 index 000000000..706a01c7b --- /dev/null +++ b/tests/expected/auto/webp2_1_0_0.png.txt @@ -0,0 +1 @@ +tests/output/auto/webp2_1_0_0.png: RIFF (little-endian) data, Web/P image, VP8 encoding, 512x512, Scaling: [none]x[none], YUV color, decoders should clamp diff --git a/tests/expected/configured/catalog_cfg.json b/tests/expected/configured/catalog_cfg.json index 810687e76..affe0ae0e 100644 --- a/tests/expected/configured/catalog_cfg.json +++ b/tests/expected/configured/catalog_cfg.json @@ -23,6 +23,10 @@ "pmt": { "content_type": "image/png" }, + "pmt2": { + "content_type": "image/webp", + "name": "ne2sr" + }, "points1": { "content_type": "application/x-protobuf", "description": "public.points1.geom" diff --git a/tests/expected/configured/pmt2_0_0_0.png b/tests/expected/configured/pmt2_0_0_0.png new file mode 100644 index 0000000000000000000000000000000000000000..543173081072ede83f6e19bf61069c9098be1c63 GIT binary patch literal 11586 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 | tee "${LOG_DIR}/test_log_1.txt" & MARTIN_PROC_ID=`jobs -p | tail -n 1` @@ -237,8 +237,9 @@ test_jsn points3857_srid points3857 test_pbf points3857_srid_0_0_0 points3857/0/0/0 >&2 echo "***** Test server response for PMTiles source *****" -test_jsn pmt stamen_toner__raster_CC-BY-ODbL_z3 -test_png pmt_3_4_2 stamen_toner__raster_CC-BY-ODbL_z3/3/4/2 +test_jsn pmt stamen_toner__raster_CC-BY-ODbL_z3 +test_png pmt_3_4_2 stamen_toner__raster_CC-BY-ODbL_z3/3/4/2 +test_png webp2_1_0_0 webp2/1/0/0 # HTTP pmtiles >&2 echo "***** Test server response for MbTiles source *****" test_jsn mb_jpg geography-class-jpg @@ -276,6 +277,7 @@ test_pbf cmp_0_0_0 points1,points2/0/0/0 test_pbf fnc_0_0_0 function_zxy_query/0/0/0 test_pbf fnc2_0_0_0 function_zxy_query_test/0/0/0?token=martin test_png pmt_0_0_0 pmt/0/0/0 +test_png pmt2_0_0_0 pmt2/0/0/0 # HTTP pmtiles test_jsn spr_src1 sprite/src1.json test_png spr_src1 sprite/src1.png