1. The GeoJSON format in older versions of GDAL doesn't support LayerCanCreateField correctly. Add it to the special exceptions list.
2. The failing spatial query test was due to GDAL (on my computer) not being compiled with GEOS support. If GEOS is not included then GDAL uses bounding boxes instead of actual geometries.
3. The CSV format test was failing because the first row which contains the headers was being counted because of the property names the test was using. For some unknown reason the property 'd' was causing GDAL to think the first row had data. Make the property names slightly more realistic.