<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/libgit2.git, branch ethomson/buf_oom_test</title>
<subtitle>github.com: libgit2/libgit2.git
</subtitle>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/'/>
<entry>
<title>buf::oom tests: use custom allocator for oom failures</title>
<updated>2018-10-21T12:15:24+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-10-21T12:10:06+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=2e34efaab1ec85a5a4ba522147edec9114d065d3'/>
<id>2e34efaab1ec85a5a4ba522147edec9114d065d3</id>
<content type='text'>
Create a custom allocator for the `buf::oom` tests that will fail with
out-of-memory errors in predictable ways.  We were previously trying to
guess the way that various allocators on various platforms would fail
in a way such that `malloc`/`realloc` would return `NULL` (instead of
aborting the application, or appearing suspicious to various
instrumentation or static code analysis tools like valgrind.)

Introduce a fake `malloc` and `realloc` that will return `NULL` on
allocations requesting more than 100 bytes.  Otherwise, we proxy to the
default allocator.  (It's important to use the _default_ allocator, not
just call `malloc`, since the default allocator on Windows CI builds may
be the debugging C runtime allocators which would not be compatible with
a standard `malloc`.)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Create a custom allocator for the `buf::oom` tests that will fail with
out-of-memory errors in predictable ways.  We were previously trying to
guess the way that various allocators on various platforms would fail
in a way such that `malloc`/`realloc` would return `NULL` (instead of
aborting the application, or appearing suspicious to various
instrumentation or static code analysis tools like valgrind.)

Introduce a fake `malloc` and `realloc` that will return `NULL` on
allocations requesting more than 100 bytes.  Otherwise, we proxy to the
default allocator.  (It's important to use the _default_ allocator, not
just call `malloc`, since the default allocator on Windows CI builds may
be the debugging C runtime allocators which would not be compatible with
a standard `malloc`.)
</pre>
</div>
</content>
</entry>
<entry>
<title>util: allow callers to reset custom allocators</title>
<updated>2018-10-21T12:14:47+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-10-21T08:52:32+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=305e801acb2b13dca4e08ad00c638c22337c25bf'/>
<id>305e801acb2b13dca4e08ad00c638c22337c25bf</id>
<content type='text'>
Provide a utility to reset custom allocators back to their default.
This is particularly useful for testing.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Provide a utility to reset custom allocators back to their default.
This is particularly useful for testing.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #4804 from libgit2/ethomson/qemu-build</title>
<updated>2018-10-21T11:50:46+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-10-21T11:50:46+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=671b2446b7805089cbc9dad9db216d13938b1393'/>
<id>671b2446b7805089cbc9dad9db216d13938b1393</id>
<content type='text'>
ci: arm docker builds</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ci: arm docker builds</pre>
</div>
</content>
</entry>
<entry>
<title>ci: use trusty-amd64 for openssl and mbedtls</title>
<updated>2018-10-21T09:38:33+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-10-21T09:34:38+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=7c5571690acef4a640f30e754bde5e133a66c33e'/>
<id>7c5571690acef4a640f30e754bde5e133a66c33e</id>
<content type='text'>
We don't need two separate docker images for OpenSSL and mbedTLS.
They've been combined into a single image `trusty-amd64` that supports
both.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We don't need two separate docker images for OpenSSL and mbedTLS.
They've been combined into a single image `trusty-amd64` that supports
both.
</pre>
</div>
</content>
</entry>
<entry>
<title>tests: don't run buf::oom on 32-bit systems</title>
<updated>2018-10-21T09:38:20+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-09-13T12:27:07+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=415a8ae9c9b6ac18f0524b6af8e58408b426457d'/>
<id>415a8ae9c9b6ac18f0524b6af8e58408b426457d</id>
<content type='text'>
On a 32-bit Linux systems, the value large enough to make malloc
guarantee a failure is also large enough that valgrind considers it
"fishy".  Skip this test on those systems entirely.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On a 32-bit Linux systems, the value large enough to make malloc
guarantee a failure is also large enough that valgrind considers it
"fishy".  Skip this test on those systems entirely.
</pre>
</div>
</content>
</entry>
<entry>
<title>valgrind: extend the suppressions file</title>
<updated>2018-10-21T09:38:20+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-09-13T15:12:41+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=9cc4ba5c7113733b743fe6c337214fa19562950d'/>
<id>9cc4ba5c7113733b743fe6c337214fa19562950d</id>
<content type='text'>
Newer dependencies means newer places to leak!
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Newer dependencies means newer places to leak!
</pre>
</div>
</content>
</entry>
<entry>
<title>ci: use bionic for non-amd64 builds</title>
<updated>2018-10-21T09:38:07+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-10-21T08:31:42+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=d82800e888a751d8db2fbd47e274ae42d7ac533d'/>
<id>d82800e888a751d8db2fbd47e274ae42d7ac533d</id>
<content type='text'>
Use Bionic so that we have a modern libssh2 (for communicating with
GitHub).  We've ported fixes to our Trusty-based amd64 images, but
maintaining patches for multiple platforms is heinous.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use Bionic so that we have a modern libssh2 (for communicating with
GitHub).  We've ported fixes to our Trusty-based amd64 images, but
maintaining patches for multiple platforms is heinous.
</pre>
</div>
</content>
</entry>
<entry>
<title>ci: introduce nightly x86 linux builds</title>
<updated>2018-10-21T09:38:05+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-10-21T08:24:08+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=b244ea79fcd6495db8fbff123bd0ea128b3bbed4'/>
<id>b244ea79fcd6495db8fbff123bd0ea128b3bbed4</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>ci: bind specifically to localhost for proxy</title>
<updated>2018-10-21T09:37:26+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-10-21T08:16:35+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=f195395ab1a84c20331fab94992348dbf21ec990'/>
<id>f195395ab1a84c20331fab94992348dbf21ec990</id>
<content type='text'>
Bind the proxy specifically to 127.0.0.1 instead of all addresses.  This
is not strictly necessary for operations, but having a potentially open
proxy on a network is not a good idea.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bind the proxy specifically to 127.0.0.1 instead of all addresses.  This
is not strictly necessary for operations, but having a potentially open
proxy on a network is not a good idea.
</pre>
</div>
</content>
</entry>
<entry>
<title>ci: introduce nightly arm docker builds</title>
<updated>2018-10-21T09:37:26+00:00</updated>
<author>
<name>Edward Thomson</name>
<email>ethomson@edwardthomson.com</email>
</author>
<published>2018-10-21T08:15:24+00:00</published>
<link rel='alternate' type='text/html' href='http://91.123.203.49/cgit/delta/libgit2.git/commit/?id=0e521abd3fff87bd2be6707052f72cf89b49391c'/>
<id>0e521abd3fff87bd2be6707052f72cf89b49391c</id>
<content type='text'>
Use multiarch arm32 and arm64 docker images to run Xenial-based images
for those platforms.  We can support all the tests on ARM32 and 64
_except_ the proxy-based tests.  Our proxy on ARM seems regrettably
unstable, either due to some shoddy dependencies (with native code?)
or the JREs themselves.

Run these platforms as part of our nightly builds; do not run them
during pull request or CI validation.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use multiarch arm32 and arm64 docker images to run Xenial-based images
for those platforms.  We can support all the tests on ARM32 and 64
_except_ the proxy-based tests.  Our proxy on ARM seems regrettably
unstable, either due to some shoddy dependencies (with native code?)
or the JREs themselves.

Run these platforms as part of our nightly builds; do not run them
during pull request or CI validation.
</pre>
</div>
</content>
</entry>
</feed>
