diff --git a/tests/fuzz/corpora/fuzz-funder-policy/0dd9b21b77b59c4b349c75ac40606fc55aa48fbe b/tests/fuzz/corpora/fuzz-funder-policy/0dd9b21b77b59c4b349c75ac40606fc55aa48fbe new file mode 100644 index 000000000000..65c2f4f0deb2 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/0dd9b21b77b59c4b349c75ac40606fc55aa48fbe differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/117ce057ec113ff638ed611673cd1a71bcabc9a2 b/tests/fuzz/corpora/fuzz-funder-policy/117ce057ec113ff638ed611673cd1a71bcabc9a2 new file mode 100644 index 000000000000..3210d573e06a Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/117ce057ec113ff638ed611673cd1a71bcabc9a2 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/15238c7234966e256fb067b3622699b95f5161ab b/tests/fuzz/corpora/fuzz-funder-policy/15238c7234966e256fb067b3622699b95f5161ab new file mode 100644 index 000000000000..5020d72216f3 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/15238c7234966e256fb067b3622699b95f5161ab differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/1701cc98a4ba75de04297461c2f9a39f63e07953 b/tests/fuzz/corpora/fuzz-funder-policy/1701cc98a4ba75de04297461c2f9a39f63e07953 new file mode 100644 index 000000000000..2318e761c29b Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/1701cc98a4ba75de04297461c2f9a39f63e07953 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/1705ba01dab00874d2f2267a6eae1768856ac2f6 b/tests/fuzz/corpora/fuzz-funder-policy/1705ba01dab00874d2f2267a6eae1768856ac2f6 new file mode 100644 index 000000000000..a471c2e1d93a Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/1705ba01dab00874d2f2267a6eae1768856ac2f6 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/1745aee1717220d6412a5c8eaa6284d123bee6d7 b/tests/fuzz/corpora/fuzz-funder-policy/1745aee1717220d6412a5c8eaa6284d123bee6d7 new file mode 100644 index 000000000000..99c9812dc98e Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/1745aee1717220d6412a5c8eaa6284d123bee6d7 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/1a2907f2e14327a0c763077c550c1c2888c5f207 b/tests/fuzz/corpora/fuzz-funder-policy/1a2907f2e14327a0c763077c550c1c2888c5f207 new file mode 100644 index 000000000000..d18af9961296 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/1a2907f2e14327a0c763077c550c1c2888c5f207 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/1c6c23636eeb6f1e88a8b70c7b6ebd9792b168d1 b/tests/fuzz/corpora/fuzz-funder-policy/1c6c23636eeb6f1e88a8b70c7b6ebd9792b168d1 new file mode 100644 index 000000000000..f83e0d60fee3 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/1c6c23636eeb6f1e88a8b70c7b6ebd9792b168d1 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/1f460f644560a5f332531da4086dbedc460556ce b/tests/fuzz/corpora/fuzz-funder-policy/1f460f644560a5f332531da4086dbedc460556ce new file mode 100644 index 000000000000..9f1a40732916 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/1f460f644560a5f332531da4086dbedc460556ce differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/22352be19ba022e9802b7a4eeaba19be1bb7ee77 b/tests/fuzz/corpora/fuzz-funder-policy/22352be19ba022e9802b7a4eeaba19be1bb7ee77 new file mode 100644 index 000000000000..b587368a8e0b Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/22352be19ba022e9802b7a4eeaba19be1bb7ee77 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/2a7de4403d0bc442e0748f3305d7db3f3e8e5409 b/tests/fuzz/corpora/fuzz-funder-policy/2a7de4403d0bc442e0748f3305d7db3f3e8e5409 new file mode 100644 index 000000000000..a75ec8019d61 --- /dev/null +++ b/tests/fuzz/corpora/fuzz-funder-policy/2a7de4403d0bc442e0748f3305d7db3f3e8e5409 @@ -0,0 +1 @@ +ÿÿÿÿÿÿñõ \ No newline at end of file diff --git a/tests/fuzz/corpora/fuzz-funder-policy/2b5e2f7c47a57d2e6035c0fc4056327b264d9606 b/tests/fuzz/corpora/fuzz-funder-policy/2b5e2f7c47a57d2e6035c0fc4056327b264d9606 new file mode 100644 index 000000000000..dc6ce86982ca Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/2b5e2f7c47a57d2e6035c0fc4056327b264d9606 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/304ce4b46565d785055ff97640e05bc443d7d2cb b/tests/fuzz/corpora/fuzz-funder-policy/304ce4b46565d785055ff97640e05bc443d7d2cb new file mode 100644 index 000000000000..6ef1dc299696 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/304ce4b46565d785055ff97640e05bc443d7d2cb differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/30609620f152967d451e082eec6f9bec087c0eec b/tests/fuzz/corpora/fuzz-funder-policy/30609620f152967d451e082eec6f9bec087c0eec new file mode 100644 index 000000000000..7bdee80d5412 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/30609620f152967d451e082eec6f9bec087c0eec differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/310ce0c76154e5411d48ef003ae2789da8931f37 b/tests/fuzz/corpora/fuzz-funder-policy/310ce0c76154e5411d48ef003ae2789da8931f37 new file mode 100644 index 000000000000..fd1e58112c46 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/310ce0c76154e5411d48ef003ae2789da8931f37 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/3487296efe857c78453bb329256745eaaa45b3a5 b/tests/fuzz/corpora/fuzz-funder-policy/3487296efe857c78453bb329256745eaaa45b3a5 new file mode 100644 index 000000000000..a9f8d031c200 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/3487296efe857c78453bb329256745eaaa45b3a5 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/38d0e1565b672295af51fcd478389759d30034ad b/tests/fuzz/corpora/fuzz-funder-policy/38d0e1565b672295af51fcd478389759d30034ad new file mode 100644 index 000000000000..1805d9bb0a9c Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/38d0e1565b672295af51fcd478389759d30034ad differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/39b02c3c62c373ce0d1d87b938282e14ba7941f1 b/tests/fuzz/corpora/fuzz-funder-policy/39b02c3c62c373ce0d1d87b938282e14ba7941f1 new file mode 100644 index 000000000000..8b74b49bd023 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/39b02c3c62c373ce0d1d87b938282e14ba7941f1 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/3f52c96e3ba662e5394e7b5164c6cdffd7ca65f9 b/tests/fuzz/corpora/fuzz-funder-policy/3f52c96e3ba662e5394e7b5164c6cdffd7ca65f9 new file mode 100644 index 000000000000..9d097f93e0f5 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/3f52c96e3ba662e5394e7b5164c6cdffd7ca65f9 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/3fe4fec4dcff48c39c57ccdec93a814829860111 b/tests/fuzz/corpora/fuzz-funder-policy/3fe4fec4dcff48c39c57ccdec93a814829860111 new file mode 100644 index 000000000000..1b22668b2376 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/3fe4fec4dcff48c39c57ccdec93a814829860111 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/3feefcefcc4c130177f914bf186555942e21a47b b/tests/fuzz/corpora/fuzz-funder-policy/3feefcefcc4c130177f914bf186555942e21a47b new file mode 100644 index 000000000000..0ba89226b810 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/3feefcefcc4c130177f914bf186555942e21a47b differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/402b570476a117d12762c24eff5597bb6d4e890c b/tests/fuzz/corpora/fuzz-funder-policy/402b570476a117d12762c24eff5597bb6d4e890c new file mode 100644 index 000000000000..4c29c717b4b6 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/402b570476a117d12762c24eff5597bb6d4e890c differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/42624ce3f0213cb9629e0bbf5f2dbbe35516b7eb b/tests/fuzz/corpora/fuzz-funder-policy/42624ce3f0213cb9629e0bbf5f2dbbe35516b7eb new file mode 100644 index 000000000000..9c8e0f1cfc22 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/42624ce3f0213cb9629e0bbf5f2dbbe35516b7eb differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/43309455228cffa8c27233a1930839b492982285 b/tests/fuzz/corpora/fuzz-funder-policy/43309455228cffa8c27233a1930839b492982285 new file mode 100644 index 000000000000..db9eb548ef32 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/43309455228cffa8c27233a1930839b492982285 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/434b3b14919d9a79d66c688c4b173b6e67ca176a b/tests/fuzz/corpora/fuzz-funder-policy/434b3b14919d9a79d66c688c4b173b6e67ca176a new file mode 100644 index 000000000000..f2d90e1c5573 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/434b3b14919d9a79d66c688c4b173b6e67ca176a differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/43c16986ee80b40d39eb78c22622b68e443c7ef5 b/tests/fuzz/corpora/fuzz-funder-policy/43c16986ee80b40d39eb78c22622b68e443c7ef5 new file mode 100644 index 000000000000..a8db3fdb9e03 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/43c16986ee80b40d39eb78c22622b68e443c7ef5 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/44bc3f3996ca504554184b026d4a86bb6eb6bc6c b/tests/fuzz/corpora/fuzz-funder-policy/44bc3f3996ca504554184b026d4a86bb6eb6bc6c new file mode 100644 index 000000000000..9e20a6be6e58 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/44bc3f3996ca504554184b026d4a86bb6eb6bc6c differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/460ac8c27229ac87744b28b03f3b55d4cd4b04be b/tests/fuzz/corpora/fuzz-funder-policy/460ac8c27229ac87744b28b03f3b55d4cd4b04be new file mode 100644 index 000000000000..48d5c7261766 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/460ac8c27229ac87744b28b03f3b55d4cd4b04be differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/46bbc4a3beac27524347e27fb77abc02368fa25b b/tests/fuzz/corpora/fuzz-funder-policy/46bbc4a3beac27524347e27fb77abc02368fa25b new file mode 100644 index 000000000000..d9a3d7ebb23d Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/46bbc4a3beac27524347e27fb77abc02368fa25b differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/47ecacefaa2b4f6a1fe8359e6d1702e425211591 b/tests/fuzz/corpora/fuzz-funder-policy/47ecacefaa2b4f6a1fe8359e6d1702e425211591 new file mode 100644 index 000000000000..017e873ee6cb Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/47ecacefaa2b4f6a1fe8359e6d1702e425211591 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/4d368569b2b0d7e7ee6adf36a28acc696a52b126 b/tests/fuzz/corpora/fuzz-funder-policy/4d368569b2b0d7e7ee6adf36a28acc696a52b126 new file mode 100644 index 000000000000..541adc40c012 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/4d368569b2b0d7e7ee6adf36a28acc696a52b126 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/50f6ebed08788a6d89bb98b2630fead84f725b24 b/tests/fuzz/corpora/fuzz-funder-policy/50f6ebed08788a6d89bb98b2630fead84f725b24 new file mode 100644 index 000000000000..628e1b53016b Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/50f6ebed08788a6d89bb98b2630fead84f725b24 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/521d4748e7fac90c41dcd6fa2e487b755028d602 b/tests/fuzz/corpora/fuzz-funder-policy/521d4748e7fac90c41dcd6fa2e487b755028d602 new file mode 100644 index 000000000000..2157f4790c55 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/521d4748e7fac90c41dcd6fa2e487b755028d602 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/5261d319536e79e5336ce17ad35cc7523f8d2f4e b/tests/fuzz/corpora/fuzz-funder-policy/5261d319536e79e5336ce17ad35cc7523f8d2f4e new file mode 100644 index 000000000000..78c86d9ff692 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/5261d319536e79e5336ce17ad35cc7523f8d2f4e differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/53ff89fa992382c600503d0bd7576b441997d430 b/tests/fuzz/corpora/fuzz-funder-policy/53ff89fa992382c600503d0bd7576b441997d430 new file mode 100644 index 000000000000..618706e27ca1 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/53ff89fa992382c600503d0bd7576b441997d430 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/55baa3088224418123ddf982294ca4766d5a16ca b/tests/fuzz/corpora/fuzz-funder-policy/55baa3088224418123ddf982294ca4766d5a16ca new file mode 100644 index 000000000000..76545cdef4a3 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/55baa3088224418123ddf982294ca4766d5a16ca differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/5b6d8942fb0b135da954462a89ecd231a4a933f7 b/tests/fuzz/corpora/fuzz-funder-policy/5b6d8942fb0b135da954462a89ecd231a4a933f7 new file mode 100644 index 000000000000..2ca1cc937b6a Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/5b6d8942fb0b135da954462a89ecd231a4a933f7 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/5bfadb4ce7a951c4afbf77499f4a57b53dba7c80 b/tests/fuzz/corpora/fuzz-funder-policy/5bfadb4ce7a951c4afbf77499f4a57b53dba7c80 new file mode 100644 index 000000000000..584647baeb77 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/5bfadb4ce7a951c4afbf77499f4a57b53dba7c80 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/5f41630ff1bd05680cafa804181329db289c2d6b b/tests/fuzz/corpora/fuzz-funder-policy/5f41630ff1bd05680cafa804181329db289c2d6b new file mode 100644 index 000000000000..09c72424208a Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/5f41630ff1bd05680cafa804181329db289c2d6b differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/6402188770d5dc5b851b9ccce02cdda524ea8499 b/tests/fuzz/corpora/fuzz-funder-policy/6402188770d5dc5b851b9ccce02cdda524ea8499 new file mode 100644 index 000000000000..9367b6f4e203 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/6402188770d5dc5b851b9ccce02cdda524ea8499 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/64eae6e8cc3c1c6278295bd8ee8f1332ef4410c0 b/tests/fuzz/corpora/fuzz-funder-policy/64eae6e8cc3c1c6278295bd8ee8f1332ef4410c0 new file mode 100644 index 000000000000..9b8ee49091ed Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/64eae6e8cc3c1c6278295bd8ee8f1332ef4410c0 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/661237faf9a9e60b577de743e98d32ce4f541c9a b/tests/fuzz/corpora/fuzz-funder-policy/661237faf9a9e60b577de743e98d32ce4f541c9a new file mode 100644 index 000000000000..78f8d1994aa9 --- /dev/null +++ b/tests/fuzz/corpora/fuzz-funder-policy/661237faf9a9e60b577de743e98d32ce4f541c9a @@ -0,0 +1,2 @@ + +ûÿÿÿêêêêêððð&ÿÿÿ \ No newline at end of file diff --git a/tests/fuzz/corpora/fuzz-funder-policy/68be3a56f97a2235815e791ea8991ac951da0d64 b/tests/fuzz/corpora/fuzz-funder-policy/68be3a56f97a2235815e791ea8991ac951da0d64 new file mode 100644 index 000000000000..5cde3ddee338 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/68be3a56f97a2235815e791ea8991ac951da0d64 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/6c8c247b7145a8408db1ccdbd7a8a95cd272bb0e b/tests/fuzz/corpora/fuzz-funder-policy/6c8c247b7145a8408db1ccdbd7a8a95cd272bb0e new file mode 100644 index 000000000000..6ab9058bd1fc --- /dev/null +++ b/tests/fuzz/corpora/fuzz-funder-policy/6c8c247b7145a8408db1ccdbd7a8a95cd272bb0e @@ -0,0 +1,2 @@ + +ÿÿÿÿÿÿÿ \ No newline at end of file diff --git a/tests/fuzz/corpora/fuzz-funder-policy/70b1d906feb9b7c6c107d9cf9c7d157ac2f3c26e b/tests/fuzz/corpora/fuzz-funder-policy/70b1d906feb9b7c6c107d9cf9c7d157ac2f3c26e new file mode 100644 index 000000000000..ff2a0f734c0e Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/70b1d906feb9b7c6c107d9cf9c7d157ac2f3c26e differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/71e6e0693b81372c79d238c531ffbd35f05e0257 b/tests/fuzz/corpora/fuzz-funder-policy/71e6e0693b81372c79d238c531ffbd35f05e0257 new file mode 100644 index 000000000000..ffedc5e5f1d9 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/71e6e0693b81372c79d238c531ffbd35f05e0257 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/73b56db98ff1dcee72b94d49b8b437ad93a2ce75 b/tests/fuzz/corpora/fuzz-funder-policy/73b56db98ff1dcee72b94d49b8b437ad93a2ce75 new file mode 100644 index 000000000000..6b75fe9603fc Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/73b56db98ff1dcee72b94d49b8b437ad93a2ce75 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/75fa54b2a198ebde0156c66ed95735233b6ea0af b/tests/fuzz/corpora/fuzz-funder-policy/75fa54b2a198ebde0156c66ed95735233b6ea0af new file mode 100644 index 000000000000..7ac9531c0406 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/75fa54b2a198ebde0156c66ed95735233b6ea0af differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/786445fb140fbf20a6316390d4f2bfa50d4e33d0 b/tests/fuzz/corpora/fuzz-funder-policy/786445fb140fbf20a6316390d4f2bfa50d4e33d0 new file mode 100644 index 000000000000..a1b60d500087 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/786445fb140fbf20a6316390d4f2bfa50d4e33d0 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/7a18be1e80cc88a5290b1b2a4b831ed61650d41c b/tests/fuzz/corpora/fuzz-funder-policy/7a18be1e80cc88a5290b1b2a4b831ed61650d41c new file mode 100644 index 000000000000..57e1fff95bac Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/7a18be1e80cc88a5290b1b2a4b831ed61650d41c differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/7a62ce9922fdf5ddec2d9abe497eb8eac777958d b/tests/fuzz/corpora/fuzz-funder-policy/7a62ce9922fdf5ddec2d9abe497eb8eac777958d new file mode 100644 index 000000000000..62d4881596ab --- /dev/null +++ b/tests/fuzz/corpora/fuzz-funder-policy/7a62ce9922fdf5ddec2d9abe497eb8eac777958d @@ -0,0 +1,2 @@ +ììììµ + diff --git a/tests/fuzz/corpora/fuzz-funder-policy/7b8d6b947ee395ec61510a69cff8559bc01c5da5 b/tests/fuzz/corpora/fuzz-funder-policy/7b8d6b947ee395ec61510a69cff8559bc01c5da5 new file mode 100644 index 000000000000..b85c661ded8c Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/7b8d6b947ee395ec61510a69cff8559bc01c5da5 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/7cde99b70745f6e8adccec802c44c61411cf4f93 b/tests/fuzz/corpora/fuzz-funder-policy/7cde99b70745f6e8adccec802c44c61411cf4f93 new file mode 100644 index 000000000000..21ac1360eee5 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/7cde99b70745f6e8adccec802c44c61411cf4f93 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/806c0bca249fa5a66c6c8e02c71ddd6aa41c7a87 b/tests/fuzz/corpora/fuzz-funder-policy/806c0bca249fa5a66c6c8e02c71ddd6aa41c7a87 new file mode 100644 index 000000000000..b9e223cc1f61 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/806c0bca249fa5a66c6c8e02c71ddd6aa41c7a87 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/81e88bf288198228901c226c8635667bac6f3a16 b/tests/fuzz/corpora/fuzz-funder-policy/81e88bf288198228901c226c8635667bac6f3a16 new file mode 100644 index 000000000000..5bb923c2e68b Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/81e88bf288198228901c226c8635667bac6f3a16 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/84591b5db57ac71caefe759ef44ac2aeb0e134bb b/tests/fuzz/corpora/fuzz-funder-policy/84591b5db57ac71caefe759ef44ac2aeb0e134bb new file mode 100644 index 000000000000..6cae2464d7e4 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/84591b5db57ac71caefe759ef44ac2aeb0e134bb differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/8663f49cc7a6114ff05bb3880e4d270142a16f81 b/tests/fuzz/corpora/fuzz-funder-policy/8663f49cc7a6114ff05bb3880e4d270142a16f81 new file mode 100644 index 000000000000..cce722517d13 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/8663f49cc7a6114ff05bb3880e4d270142a16f81 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/871a3fccbfca64a954a36e89f2b7dcf714d14f7d b/tests/fuzz/corpora/fuzz-funder-policy/871a3fccbfca64a954a36e89f2b7dcf714d14f7d new file mode 100644 index 000000000000..a2ba073cc5a1 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/871a3fccbfca64a954a36e89f2b7dcf714d14f7d differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/928caf6608b29c3b370b9b1ad0504a91d9adf5ef b/tests/fuzz/corpora/fuzz-funder-policy/928caf6608b29c3b370b9b1ad0504a91d9adf5ef new file mode 100644 index 000000000000..4f68e45abbd2 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/928caf6608b29c3b370b9b1ad0504a91d9adf5ef differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/941b0e99a86500c4873dfc21f2bc372896eab495 b/tests/fuzz/corpora/fuzz-funder-policy/941b0e99a86500c4873dfc21f2bc372896eab495 new file mode 100644 index 000000000000..a54dc1f77708 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/941b0e99a86500c4873dfc21f2bc372896eab495 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/9b2b050cffd46e55af89e3d6a50e4bb44b48b8ca b/tests/fuzz/corpora/fuzz-funder-policy/9b2b050cffd46e55af89e3d6a50e4bb44b48b8ca new file mode 100644 index 000000000000..4ddff595677a Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/9b2b050cffd46e55af89e3d6a50e4bb44b48b8ca differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/a3f551bf8fbb93c7b21c7290d53be58576397dfe b/tests/fuzz/corpora/fuzz-funder-policy/a3f551bf8fbb93c7b21c7290d53be58576397dfe new file mode 100644 index 000000000000..e65c162390e2 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/a3f551bf8fbb93c7b21c7290d53be58576397dfe differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/a47535f2c739e9ecec017204e6b98b9b9e76537b b/tests/fuzz/corpora/fuzz-funder-policy/a47535f2c739e9ecec017204e6b98b9b9e76537b new file mode 100644 index 000000000000..9987112adb7e Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/a47535f2c739e9ecec017204e6b98b9b9e76537b differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/a489514f077cfbc43b466ab8fff13b5a53fdcb9f b/tests/fuzz/corpora/fuzz-funder-policy/a489514f077cfbc43b466ab8fff13b5a53fdcb9f new file mode 100644 index 000000000000..d8ff92773537 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/a489514f077cfbc43b466ab8fff13b5a53fdcb9f differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/ad8f3e57ee9df25b777461ed66ab39377cec45e2 b/tests/fuzz/corpora/fuzz-funder-policy/ad8f3e57ee9df25b777461ed66ab39377cec45e2 new file mode 100644 index 000000000000..9550586683ce Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/ad8f3e57ee9df25b777461ed66ab39377cec45e2 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/b4dd74f909f9852132bb50fc746e3f123e9d1646 b/tests/fuzz/corpora/fuzz-funder-policy/b4dd74f909f9852132bb50fc746e3f123e9d1646 new file mode 100644 index 000000000000..fb6e9c9a113f Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/b4dd74f909f9852132bb50fc746e3f123e9d1646 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/b97d391cdcd3c1d27df8bf0a7fe639b2e7f5a1a5 b/tests/fuzz/corpora/fuzz-funder-policy/b97d391cdcd3c1d27df8bf0a7fe639b2e7f5a1a5 new file mode 100644 index 000000000000..b0623c3f2664 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/b97d391cdcd3c1d27df8bf0a7fe639b2e7f5a1a5 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/bbbb7404d9332bb31beae622db52b4723382f4b1 b/tests/fuzz/corpora/fuzz-funder-policy/bbbb7404d9332bb31beae622db52b4723382f4b1 new file mode 100644 index 000000000000..58248666476e Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/bbbb7404d9332bb31beae622db52b4723382f4b1 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/bdb8dd4b4fca47e85c29cb696dfbbe10b31114dc b/tests/fuzz/corpora/fuzz-funder-policy/bdb8dd4b4fca47e85c29cb696dfbbe10b31114dc new file mode 100644 index 000000000000..56a54f07b664 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/bdb8dd4b4fca47e85c29cb696dfbbe10b31114dc differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/bf16241f526a3b57b301f24dad912ae85df17f70 b/tests/fuzz/corpora/fuzz-funder-policy/bf16241f526a3b57b301f24dad912ae85df17f70 new file mode 100644 index 000000000000..387872fbb29b Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/bf16241f526a3b57b301f24dad912ae85df17f70 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/c95af1eefbad7ff281b1f94f84ddecc261d055e3 b/tests/fuzz/corpora/fuzz-funder-policy/c95af1eefbad7ff281b1f94f84ddecc261d055e3 new file mode 100644 index 000000000000..c15663dd6ba7 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/c95af1eefbad7ff281b1f94f84ddecc261d055e3 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/c98d1458170135d45b0aca640cd5eef7cc8c5c60 b/tests/fuzz/corpora/fuzz-funder-policy/c98d1458170135d45b0aca640cd5eef7cc8c5c60 new file mode 100644 index 000000000000..e1243182c03c Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/c98d1458170135d45b0aca640cd5eef7cc8c5c60 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/ca9355c0bb6f7c0e50c215e1e9f037c980abd33d b/tests/fuzz/corpora/fuzz-funder-policy/ca9355c0bb6f7c0e50c215e1e9f037c980abd33d new file mode 100644 index 000000000000..f45af75d6fb1 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/ca9355c0bb6f7c0e50c215e1e9f037c980abd33d differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/cab1ddf5aea55f8aadaaf70715d8875c21542434 b/tests/fuzz/corpora/fuzz-funder-policy/cab1ddf5aea55f8aadaaf70715d8875c21542434 new file mode 100644 index 000000000000..e6e501cf5cab Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/cab1ddf5aea55f8aadaaf70715d8875c21542434 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/cb03dd135327b7a08401c74bf1d81990f3ede8b0 b/tests/fuzz/corpora/fuzz-funder-policy/cb03dd135327b7a08401c74bf1d81990f3ede8b0 new file mode 100644 index 000000000000..19ed76c5c58f Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/cb03dd135327b7a08401c74bf1d81990f3ede8b0 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/ccc54e6ae82d0e243161800eb901276745feb61c b/tests/fuzz/corpora/fuzz-funder-policy/ccc54e6ae82d0e243161800eb901276745feb61c new file mode 100644 index 000000000000..6bb7ee3ce086 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/ccc54e6ae82d0e243161800eb901276745feb61c differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/cd874ed0860b883930bb0f261feebcbe855fe7fa b/tests/fuzz/corpora/fuzz-funder-policy/cd874ed0860b883930bb0f261feebcbe855fe7fa new file mode 100644 index 000000000000..475c6ee40c21 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/cd874ed0860b883930bb0f261feebcbe855fe7fa differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/d68fc2917145b9949805bfd88753a380f1de6585 b/tests/fuzz/corpora/fuzz-funder-policy/d68fc2917145b9949805bfd88753a380f1de6585 new file mode 100644 index 000000000000..e225ac9f6495 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/d68fc2917145b9949805bfd88753a380f1de6585 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/d6a676b0310b896edd101034241a9e446da422da b/tests/fuzz/corpora/fuzz-funder-policy/d6a676b0310b896edd101034241a9e446da422da new file mode 100644 index 000000000000..7d08cb51db18 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/d6a676b0310b896edd101034241a9e446da422da differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/d758042b39285f83734f5c9afd46e0fe758a5c0e b/tests/fuzz/corpora/fuzz-funder-policy/d758042b39285f83734f5c9afd46e0fe758a5c0e new file mode 100644 index 000000000000..03d676617649 --- /dev/null +++ b/tests/fuzz/corpora/fuzz-funder-policy/d758042b39285f83734f5c9afd46e0fe758a5c0e @@ -0,0 +1,5 @@ +Ú + +ì + +ììì \ No newline at end of file diff --git a/tests/fuzz/corpora/fuzz-funder-policy/d80d020f370213673c4b23a19d47c503293393f7 b/tests/fuzz/corpora/fuzz-funder-policy/d80d020f370213673c4b23a19d47c503293393f7 new file mode 100644 index 000000000000..4089d0ac382d Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/d80d020f370213673c4b23a19d47c503293393f7 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/d8ba162db06c9eb54518438237a2e72152ea3eca b/tests/fuzz/corpora/fuzz-funder-policy/d8ba162db06c9eb54518438237a2e72152ea3eca new file mode 100644 index 000000000000..d2f2cf71b245 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/d8ba162db06c9eb54518438237a2e72152ea3eca differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/d9efc3e72010a0af55709593f51b1f1c6b5bafce b/tests/fuzz/corpora/fuzz-funder-policy/d9efc3e72010a0af55709593f51b1f1c6b5bafce new file mode 100644 index 000000000000..96503b24eea7 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/d9efc3e72010a0af55709593f51b1f1c6b5bafce differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/dafa6df60ac518ad26ff64ab841bcb03c72cc9ab b/tests/fuzz/corpora/fuzz-funder-policy/dafa6df60ac518ad26ff64ab841bcb03c72cc9ab new file mode 100644 index 000000000000..44f13051d498 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/dafa6df60ac518ad26ff64ab841bcb03c72cc9ab differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/dd0dbec87f07248fee82a51c9b5c326cc196a69b b/tests/fuzz/corpora/fuzz-funder-policy/dd0dbec87f07248fee82a51c9b5c326cc196a69b new file mode 100644 index 000000000000..9976a1b0253b Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/dd0dbec87f07248fee82a51c9b5c326cc196a69b differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/ddc5898573da103b1965dc8d0664f55f7e516599 b/tests/fuzz/corpora/fuzz-funder-policy/ddc5898573da103b1965dc8d0664f55f7e516599 new file mode 100644 index 000000000000..9f2db4b72ff9 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/ddc5898573da103b1965dc8d0664f55f7e516599 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/e62aeb49b40ffa74c4169cfec38481fbcf0c7d41 b/tests/fuzz/corpora/fuzz-funder-policy/e62aeb49b40ffa74c4169cfec38481fbcf0c7d41 new file mode 100644 index 000000000000..aae19d49eb52 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/e62aeb49b40ffa74c4169cfec38481fbcf0c7d41 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/e8c124b054411b9bb23924861aac936b76597b73 b/tests/fuzz/corpora/fuzz-funder-policy/e8c124b054411b9bb23924861aac936b76597b73 new file mode 100644 index 000000000000..021a7f9cca16 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/e8c124b054411b9bb23924861aac936b76597b73 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/eabb8ae115bd391e7d756462626f6673089a84f5 b/tests/fuzz/corpora/fuzz-funder-policy/eabb8ae115bd391e7d756462626f6673089a84f5 new file mode 100644 index 000000000000..03745092ace2 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/eabb8ae115bd391e7d756462626f6673089a84f5 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/eb0ed7a8926791fd591c5a49e8bb78de3f2c6c05 b/tests/fuzz/corpora/fuzz-funder-policy/eb0ed7a8926791fd591c5a49e8bb78de3f2c6c05 new file mode 100644 index 000000000000..7604a99e866f Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/eb0ed7a8926791fd591c5a49e8bb78de3f2c6c05 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/f2972262e5e3e378a3cc57dfb93aea77cd3098ab b/tests/fuzz/corpora/fuzz-funder-policy/f2972262e5e3e378a3cc57dfb93aea77cd3098ab new file mode 100644 index 000000000000..2e807161436b Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/f2972262e5e3e378a3cc57dfb93aea77cd3098ab differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/f3ac89da30e18d00c1f5ff9622ae1725a79a5223 b/tests/fuzz/corpora/fuzz-funder-policy/f3ac89da30e18d00c1f5ff9622ae1725a79a5223 new file mode 100644 index 000000000000..d1a9229f574c Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/f3ac89da30e18d00c1f5ff9622ae1725a79a5223 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/f4694c66f9a53a04c981254abfbfaea311d6521f b/tests/fuzz/corpora/fuzz-funder-policy/f4694c66f9a53a04c981254abfbfaea311d6521f new file mode 100644 index 000000000000..026d046a32c8 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/f4694c66f9a53a04c981254abfbfaea311d6521f differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/f4e4988ceafad3c51de798d9b6346d16f87bbeb6 b/tests/fuzz/corpora/fuzz-funder-policy/f4e4988ceafad3c51de798d9b6346d16f87bbeb6 new file mode 100644 index 000000000000..b2fa0b293d0f Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/f4e4988ceafad3c51de798d9b6346d16f87bbeb6 differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/f7be3f09eb8be425a45fe22bc4bf8c7fa709eccf b/tests/fuzz/corpora/fuzz-funder-policy/f7be3f09eb8be425a45fe22bc4bf8c7fa709eccf new file mode 100644 index 000000000000..7790c03273c3 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/f7be3f09eb8be425a45fe22bc4bf8c7fa709eccf differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/f9849a577a64485272aee3aa4da6cde549c9032f b/tests/fuzz/corpora/fuzz-funder-policy/f9849a577a64485272aee3aa4da6cde549c9032f new file mode 100644 index 000000000000..0ade1af8f11b Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/f9849a577a64485272aee3aa4da6cde549c9032f differ diff --git a/tests/fuzz/corpora/fuzz-funder-policy/feae42cff41a897f1d49076e19f0e42ad342b10d b/tests/fuzz/corpora/fuzz-funder-policy/feae42cff41a897f1d49076e19f0e42ad342b10d new file mode 100644 index 000000000000..7d53a7b66d44 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-funder-policy/feae42cff41a897f1d49076e19f0e42ad342b10d differ diff --git a/tests/fuzz/fuzz-funder-policy.c b/tests/fuzz/fuzz-funder-policy.c new file mode 100644 index 000000000000..a3f80aaa2314 --- /dev/null +++ b/tests/fuzz/fuzz-funder-policy.c @@ -0,0 +1,167 @@ +#include "config.h" +#include +#include +#include +#include +#include + +#include "../../plugins/funder_policy.c" + +/* AUTOGENERATED MOCKS START */ +/* Generated stub for json_add_string */ +void json_add_string(struct json_stream *js UNNEEDED, + const char *fieldname UNNEEDED, + const char *str TAKES UNNEEDED) +{ fprintf(stderr, "json_add_string called!\n"); abort(); } +/* AUTOGENERATED MOCKS END */ + +#define MAX_SATS ((u64)WALLY_SATOSHI_PER_BTC * WALLY_BTC_MAX) + +struct test_case { + struct amount_sat their_funds; + struct amount_sat available_funds; + struct amount_sat *our_last_funds; + struct amount_sat max_channel_size; + struct amount_sat lease_request; + struct funder_policy policy; +}; + +static struct amount_sat fromwire_amount_sat_bounded(const u8 **cursor, size_t *max) +{ + struct amount_sat amt = fromwire_amount_sat(cursor, max); + amt.satoshis %= (MAX_SATS + 1); + return amt; +} + +static struct test_case *new_test_case(const tal_t *ctx, const u8 **cursor, size_t *max) +{ + struct test_case *tcase = tal(ctx, struct test_case); + tcase->their_funds = fromwire_amount_sat_bounded(cursor, max); + tcase->available_funds = fromwire_amount_sat_bounded(cursor, max); + + /* Read flag for our_last_funds */ + u8 flag = fromwire_u8(cursor, max); + + /* Handle our_last_funds conditionally */ + struct amount_sat *our_last_funds_val = tal(ctx, struct amount_sat); + if (flag) + { + *our_last_funds_val = fromwire_amount_sat_bounded(cursor, max); + tcase->our_last_funds = our_last_funds_val; + } + else + tcase->our_last_funds = NULL; + + tcase->max_channel_size = fromwire_amount_sat_bounded(cursor, max); + tcase->lease_request = fromwire_amount_sat_bounded(cursor, max); + + tcase->policy.opt = (enum funder_opt)(fromwire_u8(cursor, max) % 3); + tcase->policy.mod = fromwire_u64(cursor, max); + switch (tcase->policy.opt) + { + case MATCH: + tcase->policy.mod %= 201; + break; + case AVAILABLE: + tcase->policy.mod %= 101; + break; + case FIXED: + tcase->policy.mod %= MAX_SATS + 1; + break; + default: + assert(false && "invalid policy"); + } + tcase->policy.min_their_funding = fromwire_amount_sat_bounded(cursor, max); + tcase->policy.max_their_funding = fromwire_amount_sat_bounded(cursor, max); + + if (amount_sat_greater(tcase->policy.min_their_funding, tcase->policy.max_their_funding)) { + struct amount_sat tmp = tcase->policy.min_their_funding; + tcase->policy.min_their_funding = tcase->policy.max_their_funding; + tcase->policy.max_their_funding = tmp; + } + + tcase->policy.per_channel_max = fromwire_amount_sat_bounded(cursor, max); + tcase->policy.per_channel_min = fromwire_amount_sat_bounded(cursor, max); + + if (amount_sat_greater(tcase->policy.per_channel_min, tcase->policy.per_channel_max)) { + struct amount_sat tmp = tcase->policy.per_channel_min; + tcase->policy.per_channel_min = tcase->policy.per_channel_max; + tcase->policy.per_channel_max = tmp; + } + + tcase->policy.fuzz_factor = fromwire_u8(cursor, max) % 101; + tcase->policy.reserve_tank = fromwire_amount_sat_bounded(cursor, max); + tcase->policy.fund_probability = fromwire_u8(cursor, max) % 101; + tcase->policy.leases_only = fromwire_u8(cursor, max) & 1; + + return tcase; +} + +void init(int *argc, char ***argv) +{} + +void run(const u8 *data, size_t size) +{ + struct test_case *tcase = new_test_case(tmpctx, &data, &size); + + struct node_id id; + memset(&id, 1, sizeof(id)); + const char *err; + struct amount_sat our_funds; + + /* Call the function under test */ + err = calculate_our_funding(&tcase->policy, id, + tcase->their_funds, + tcase->our_last_funds, + tcase->available_funds, + tcase->max_channel_size, + tcase->lease_request, + &our_funds); + + /* Validate invariants */ + if (!err) + { + /* Check total doesn't exceed max_channel_size */ + struct amount_sat total; + if (!amount_sat_add(&total, tcase->their_funds, our_funds)) { + fprintf(stderr, "Overflow in total channel capacity\n"); + abort(); + } + if (amount_sat_greater(total, tcase->max_channel_size)) { + fprintf(stderr, "Total channel capacity %"PRIu64" exceeds size %"PRIu64"\n", + total.satoshis, tcase->max_channel_size.satoshis); + abort(); + } + + /* Check our_funds is within per-channel limits */ + if (amount_sat_less(our_funds, tcase->policy.per_channel_min) && + !amount_sat_is_zero(our_funds)) { + fprintf(stderr, "our_funds %"PRIu64" < per_channel_min %"PRIu64"\n", + our_funds.satoshis, tcase->policy.per_channel_min.satoshis); + abort(); + } + if (amount_sat_greater(our_funds, tcase->policy.per_channel_max)) { + fprintf(stderr, "our_funds %"PRIu64" > per_max_channel_size %"PRIu64"\n", + our_funds.satoshis, tcase->policy.per_channel_max.satoshis); + abort(); + } + } + + /* Check available funds constraint */ + struct amount_sat available_minus_reserve; + if (amount_sat_sub(&available_minus_reserve, tcase->available_funds, tcase->policy.reserve_tank)) { + if (amount_sat_greater(our_funds, available_minus_reserve)) { + fprintf(stderr, "our_funds %"PRIu64" > available %"PRIu64" - reserve %"PRIu64"\n", + our_funds.satoshis, tcase->available_funds.satoshis, + tcase->policy.reserve_tank.satoshis); + abort(); + } + } else if (!amount_sat_eq(our_funds, AMOUNT_SAT(0))) { + fprintf(stderr, "Reserve %"PRIu64" >= available %"PRIu64" but our_funds %"PRIu64" != 0\n", + tcase->policy.reserve_tank.satoshis, tcase->available_funds.satoshis, + our_funds.satoshis); + abort(); + } + + clean_tmpctx(); +}