[INFO] cloning repository https://github.com/andykilroy/bucktracer [INFO] running `"git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/andykilroy/bucktracer" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandykilroy%2Fbucktracer"` [INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandykilroy%2Fbucktracer'... [INFO] running `"git" "rev-parse" "HEAD"` [INFO] [stdout] 98312af4c4284cf496047cf3cbda5279f3a550fe [INFO] testing andykilroy/bucktracer against beta-2020-06-03 for beta-1.45-1 [INFO] running `"git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2Fandykilroy%2Fbucktracer" "/workspace/builds/worker-0/source"` [INFO] [stderr] Cloning into '/workspace/builds/worker-0/source'... [INFO] [stderr] done. [INFO] validating manifest of git repo https://github.com/andykilroy/bucktracer on toolchain beta-2020-06-03 [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "read-manifest" "--manifest-path" "Cargo.toml"` [INFO] started tweaking git repo https://github.com/andykilroy/bucktracer [INFO] finished tweaking git repo https://github.com/andykilroy/bucktracer [INFO] tweaked toml for git repo https://github.com/andykilroy/bucktracer written to /workspace/builds/worker-0/source/Cargo.toml [INFO] crate git repo https://github.com/andykilroy/bucktracer already has a lockfile, it will not be regenerated [INFO] running `"/workspace/cargo-home/bin/cargo" "+beta-2020-06-03" "fetch" "--locked" "--manifest-path" "Cargo.toml"` [INFO] [stderr] Downloading crates ... [INFO] [stderr] Downloaded structopt v0.3.6 [INFO] [stderr] Downloaded structopt-derive v0.3.6 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "build" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 54e1da505931a6546425c356869b8af95dfe3ff4f6af4f96207ac86170bc01f4 [INFO] running `"docker" "start" "-a" "54e1da505931a6546425c356869b8af95dfe3ff4f6af4f96207ac86170bc01f4"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling proc-macro2 v1.0.6 [INFO] [stderr] Compiling syn v1.0.11 [INFO] [stderr] Compiling cc v1.0.48 [INFO] [stderr] Compiling unicode-segmentation v1.6.0 [INFO] [stderr] Compiling serde v1.0.104 [INFO] [stderr] Compiling inflate v0.4.5 [INFO] [stderr] Compiling atty v0.2.13 [INFO] [stderr] Compiling deflate v0.7.20 [INFO] [stderr] Compiling clap v2.33.0 [INFO] [stderr] Compiling heck v0.3.1 [INFO] [stderr] Compiling png v0.15.2 [INFO] [stderr] Compiling backtrace-sys v0.1.32 [INFO] [stderr] Compiling quote v1.0.2 [INFO] [stderr] Compiling backtrace v0.3.40 [INFO] [stderr] Compiling syn-mid v0.4.0 [INFO] [stderr] Compiling synstructure v0.12.3 [INFO] [stderr] Compiling rustversion v1.0.0 [INFO] [stderr] Compiling serde_derive v1.0.104 [INFO] [stderr] Compiling failure_derive v0.1.6 [INFO] [stderr] Compiling proc-macro-error v0.4.4 [INFO] [stderr] Compiling proc-macro-error-attr v0.4.3 [INFO] [stderr] Compiling failure v0.1.6 [INFO] [stderr] Compiling exitfailure v0.5.1 [INFO] [stderr] Compiling structopt-derive v0.3.6 [INFO] [stderr] Compiling structopt v0.3.6 [INFO] [stderr] Compiling toml v0.5.5 [INFO] [stderr] Compiling bucktracer v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished dev [unoptimized + debuginfo] target(s) in 1m 09s [INFO] running `"docker" "inspect" "54e1da505931a6546425c356869b8af95dfe3ff4f6af4f96207ac86170bc01f4"` [INFO] running `"docker" "rm" "-f" "54e1da505931a6546425c356869b8af95dfe3ff4f6af4f96207ac86170bc01f4"` [INFO] [stdout] 54e1da505931a6546425c356869b8af95dfe3ff4f6af4f96207ac86170bc01f4 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "test" "--frozen" "--no-run"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] b1e40ac3b85c2338dc0e07b1c13e138f9f263699c628936291d9dfe1fee5d949 [INFO] running `"docker" "start" "-a" "b1e40ac3b85c2338dc0e07b1c13e138f9f263699c628936291d9dfe1fee5d949"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Compiling bucktracer v0.1.0 (/opt/rustwide/workdir) [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 5.51s [INFO] running `"docker" "inspect" "b1e40ac3b85c2338dc0e07b1c13e138f9f263699c628936291d9dfe1fee5d949"` [INFO] running `"docker" "rm" "-f" "b1e40ac3b85c2338dc0e07b1c13e138f9f263699c628936291d9dfe1fee5d949"` [INFO] [stdout] b1e40ac3b85c2338dc0e07b1c13e138f9f263699c628936291d9dfe1fee5d949 [INFO] running `"docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "MAP_USER_ID=0" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--network" "none" "rustops/crates-build-env" "/opt/rustwide/cargo-home/bin/cargo" "+beta-2020-06-03" "test" "--frozen"` [INFO] [stderr] WARNING: Your kernel does not support swap limit capabilities or the cgroup is not mounted. Memory limited without swap. [INFO] [stdout] 8774c7413691ebee0cab127e32d137f2541da6bcfae9e36c6ceecd806706a3bc [INFO] running `"docker" "start" "-a" "8774c7413691ebee0cab127e32d137f2541da6bcfae9e36c6ceecd806706a3bc"` [INFO] [stderr] sudo: setrlimit(RLIMIT_CORE): Operation not permitted [INFO] [stderr] Finished test [unoptimized + debuginfo] target(s) in 0.14s [INFO] [stderr] Running /opt/rustwide/target/debug/deps/bucktracer-25b13c6535d12f03 [INFO] [stdout] [INFO] [stdout] running 48 tests [INFO] [stdout] test math::test::cofactors_of_3x3 ... ok [INFO] [stdout] test math::test::determinant ... ok [INFO] [stdout] test math::test::determinant_of_3x3 ... ok [INFO] [stdout] test math::test::minor_of_3x3 ... ok [INFO] [stdout] test math::test::submatrix_of_3x3 ... ok [INFO] [stdout] test math::test::determinant_of_4x4 ... ok [INFO] [stdout] test png::conversion_to_u8 ... ok [INFO] [stdout] test partition::test_partition::bounding_box_iterator___no_elements___returns_none ... ok [INFO] [stdout] test png::pngtest::empty_canvas_to_empty_rgb_array ... ok [INFO] [stdout] test png::pngtest::nonempty_canvas_to_nonempty_rgb_array ... ok [INFO] [stdout] test test_reflection::colour_at_max_recursion_depth ... ok [INFO] [stdout] test test_refraction::refracted_colour_at_max_recursive_depth_is_black ... ok [INFO] [stdout] test partition::test_partition::bounding_boxes_depth1 ... ok [INFO] [stdout] test partition::test_partition::bounding_box_iterator___one_element___gets_returned ... ok [INFO] [stdout] test test_reflection::compute_reflective_vector ... ok [INFO] [stdout] test test_refraction::refracted_colour_is_due_to_colour_of_refracted_ray ... ok [INFO] [stdout] test test_reflection::reflected_colour_for_non_reflective_material_is_black ... ok [INFO] [stdout] test test_refraction::schlick_approximation_with_small_angle_n2_gt_n1 ... ok [INFO] [stdout] test test_refraction::shade_hit_transparent_material ... ok [INFO] [stdout] test test_refraction::refractions1 ... ok [INFO] [stdout] test partition::test_partition::size_of_box_tree_is_related_to_power_of_2 ... ok [INFO] [stdout] test test_refraction::schlick_approx_with_a_perpendicular_viewing_angle ... ok [INFO] [stdout] test partition::test_partition::bounding_box_iterator___multiple_entries___returned_in_order_of_bounding_box_they_occupy ... ok [INFO] [stdout] test test_reflection::shade_hit_for_reflective_material ... ok [INFO] [stdout] test math::test::submatrix_of_4x4 ... ok [INFO] [stdout] test partition::test_partition::bounding_box_map___put_associates_object_with_smallest_bounding_box_that_contains_it ... ok [INFO] [stdout] test test_refraction::refracted_colour_of_opaque_surface_is_black ... ok [INFO] [stdout] test test_refraction::refracted_colour_under_total_internal_reflection_is_black ... ok [INFO] [stdout] test test_refraction::refracted_colour_not_at_max_recursive_depth_is_not_black ... ok [INFO] [stdout] test test_shading::intersect_a_world_with_a_ray ... ok [INFO] [stdout] test test_shading::shade_an_intersection_point ... ok [INFO] [stdout] test test_shading::shade_an_intersection_point_from_inside ... ok [INFO] [stdout] test wavefront::test_string_to_polygon_point_conversion::allow_a_texture_index ... ok [INFO] [stdout] test wavefront::test_string_to_polygon_point_conversion::dont_permit_negative_normal_indices ... ok [INFO] [stdout] test wavefront::test_string_to_polygon_point_conversion::dont_permit_rational_numbers_for_normal_index ... ok [INFO] [stdout] test wavefront::test_string_to_polygon_point_conversion::with_slashes_produces_a_vertex_index_and_normal ... ok [INFO] [stdout] test test_shading::the_hit_when_an_intersection_occurs_on_inside ... ok [INFO] [stdout] test wavefront::test_string_to_polygon_point_conversion::dont_permit_rational_numbers_for_vertex_index ... ok [INFO] [stdout] test wavefront::test_string_to_polygon_point_conversion::no_slashes_produce_no_normals ... ok [INFO] [stdout] test test_shading::precompute_state_of_intersection ... ok [INFO] [stdout] test test_shading::the_hit_when_intersection_occurs_on_outside ... ok [INFO] [stdout] test test_shadows::the_hit_should_bump_the_point_slightly_in_the_direction_of_normalv ... ok [INFO] [stdout] test wavefront::test_string_to_polygon_point_conversion::dont_permit_negative_vertex_indices ... ok [INFO] [stdout] test test_refraction::shade_hit_with_reflective_transparent_material ... ok [INFO] [stdout] test test_refraction::under_point_is_below_the_surface ... ok [INFO] [stdout] test partition::test_partition::bounding_boxes_depth0 ... ok [INFO] [stdout] test test_reflection::reflected_colour_for_reflective_material ... ok [INFO] [stdout] test partition::test_partition::bounding_boxes_depth2 ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 48 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/objtree-1bcc94047373cb5a [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/partinfo-d7d5beabbbbe3051 [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/scanobj-69c1d03d7cf91037 [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/viewobj-9ed2b7a7e2f170fa [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Running /opt/rustwide/target/debug/deps/integration_tests-db60acbb7f181fa1 [INFO] [stdout] [INFO] [stdout] running 226 tests [INFO] [stdout] test all::camera::ray_when_camera_transformed ... ok [INFO] [stdout] test all::material::default_material ... ok [INFO] [stdout] test all::canvas::create_a_canvas ... ok [INFO] [stdout] test all::material::lighting_with_eye_between_light_and_the_surface ... ok [INFO] [stdout] test all::camera::pixel_size_for_horizontal_canvas ... ok [INFO] [stdout] test all::material::lighting_with_eye_in_path_of_reflection_vector ... ok [INFO] [stdout] test all::canvas::colour_the_canvas ... ok [INFO] [stdout] test all::canvas::multiply_colours ... ok [INFO] [stdout] test all::material::lighting_with_the_surface_in_shadow ... ok [INFO] [stdout] test all::camera::render_world_with_camera ... ok [INFO] [stdout] test all::material::default_material_on_sphere ... ok [INFO] [stdout] test all::material::lighting_with_eye_opposite_surface_light_offset_45_angle ... ok [INFO] [stdout] test all::material::lighting_with_light_behind_the_surface ... ok [INFO] [stdout] test all::math::matrices::create_4x4_matrix ... ok [INFO] [stdout] test all::material::assign_sphere_a_material ... ok [INFO] [stdout] test all::material::when_object_between_light_and_point_is_opaque_object_has_ambient_colour ... ok [INFO] [stdout] test all::material::when_object_between_light_and_point_is_transparent_object_has_some_colour ... ok [INFO] [stdout] test all::math::matrices::inverse_4 ... ok [INFO] [stdout] test all::material::default_material_is_not_reflective ... ok [INFO] [stdout] test all::camera::construct_camera ... ok [INFO] [stdout] test all::math::matrices::inverse_3 ... ok [INFO] [stdout] test all::math::matrices::equality ... ok [INFO] [stdout] test all::camera::ray_thru_centre_of_canvas ... ok [INFO] [stdout] test all::camera::pixel_size_for_vertical_canvas ... ok [INFO] [stdout] test all::material::lighting_with_eye_between_light_and_the_surface_at_45_angle ... ok [INFO] [stdout] test all::canvas::create_a_colour ... ok [INFO] [stdout] test all::camera::ray_thru_corner_of_canvas ... ok [INFO] [stdout] test all::math::matrices::inverse_5 ... ok [INFO] [stdout] test all::math::matrices::matrix_mult ... ok [INFO] [stdout] test all::math::matrices::mult_by_identity ... ok [INFO] [stdout] test all::math::matrices::not_equal ... ok [INFO] [stdout] test all::math::matrices::test_for_invertibility ... ok [INFO] [stdout] test all::math::transformations::a_view_towards_the_positive_z_direction ... ok [INFO] [stdout] test all::math::transformations::compose_transforms ... ok [INFO] [stdout] test all::math::transformations::reflection_is_scaling_by_a_negative_value ... ok [INFO] [stdout] test all::math::transformations::rotate_around_y_axis ... ok [INFO] [stdout] test all::math::transformations::arbitrary_view_transform ... ok [INFO] [stdout] test all::math::transformations::rotate_around_z_axis ... ok [INFO] [stdout] test all::math::transformations::rotate_around_x_axis ... ok [INFO] [stdout] test all::math::transformations::multiply_by_inverse_of_a_scaling_matrix ... ok [INFO] [stdout] test all::math::matrices::inverse_2 ... ok [INFO] [stdout] test all::math::transformations::scaling_a_point ... ok [INFO] [stdout] test all::math::matrices::mult_tuple_by_identity ... ok [INFO] [stdout] test all::math::matrices::inverse ... ok [INFO] [stdout] test all::material::materials_not_equal ... ok [INFO] [stdout] test all::math::transformations::translation_does_not_affect_vectors ... ok [INFO] [stdout] test all::math::transformations::view_transform_moves_the_world ... ok [INFO] [stdout] test all::math::transformations::scaling_a_vector ... ok [INFO] [stdout] test all::math::matrices::matrix_tuple_multiplication ... ok [INFO] [stdout] test all::math::transformations::transformation_matrix_for_default_orientation ... ok [INFO] [stdout] test all::math::transformations::translate ... ok [INFO] [stdout] test all::material::point_light_has_intensity_and_position ... ok [INFO] [stdout] test all::math::tuple4::definitely_not_equal ... ok [INFO] [stdout] test all::math::tuple4::cross_product ... ok [INFO] [stdout] test all::math::matrices::transpose ... ok [INFO] [stdout] test all::math::tuple4::maximum_pos_infinity_more_than_zeroes ... ok [INFO] [stdout] test all::math::tuple4::convert_from_string___2_members_returns_error ... ok [INFO] [stdout] test all::math::transformations::mult_by_inverse_translation ... ok [INFO] [stdout] test all::math::tuple4::convert_from_string___whitespace_only_returns_error ... ok [INFO] [stdout] test all::math::tuple4::convert_from_string___3_members_is_ok ... ok [INFO] [stdout] test all::math::tuple4::convert_from_string___integer_members_ok ... ok [INFO] [stdout] test all::math::tuple4::convert_from_string___4_members_is_ok ... ok [INFO] [stdout] test all::math::tuple4::dot_product ... ok [INFO] [stdout] test all::math::tuple4::format_tuple4 ... ok [INFO] [stdout] test all::math::tuple4::magnitude ... ok [INFO] [stdout] test all::math::tuple4::convert_from_string___non_numeric_returns_error ... ok [INFO] [stdout] test all::math::tuple4::maximum_mixed_values ... ok [INFO] [stdout] test all::math::tuple4::almost_equal ... ok [INFO] [stdout] test all::math::tuple4::normalize ... ok [INFO] [stdout] test all::math::tuple4::minimum_neg_infinity_less_than_zeroes ... ok [INFO] [stdout] test all::math::tuple4::maximum_zeroes_more_than_neg_infinity ... ok [INFO] [stdout] test all::math::tuple4::minimum_zeroes_less_than_infinity ... ok [INFO] [stdout] test all::math::tuple4::minimum_mixed_values ... ok [INFO] [stdout] test all::math::tuple4::negation ... ok [INFO] [stdout] test all::math::tuple4::scaling ... ok [INFO] [stdout] test all::partitioning::leaf_object___but_path_non_empty___return_none ... ok [INFO] [stdout] test all::math::tuple4::test_subtraction ... ok [INFO] [stdout] test all::partitioning::flatten___empty_list___produces_empty_list ... ok [INFO] [stdout] test all::partitioning::no_objects___generates_empty_group ... ok [INFO] [stdout] test all::partitioning::flatten___children_of_group_are_promoted_to_top_level ... ok [INFO] [stdout] test all::math::tuple4::simple_point_creation ... ok [INFO] [stdout] test all::patterns::a_stripe_pattern_is_constant_in_y ... ok [INFO] [stdout] test all::partitioning::flatten___flattened_list_produces_same_result ... ok [INFO] [stdout] test all::partitioning::flatten___produces_flat_vector ... ok [INFO] [stdout] test all::partitioning::path_goes_out_of_bounds___returns_none ... ok [INFO] [stdout] test all::patterns::a_stripe_pattern_is_constant_in_z ... ok [INFO] [stdout] test all::math::tuple4::test_addition ... ok [INFO] [stdout] test all::patterns::a_stripe_pattern_alternates_in_x ... ok [INFO] [stdout] test all::patterns::gradient_x_out_of_bounds ... ok [INFO] [stdout] test all::patterns::gradient_x_within_0_and_1 ... ok [INFO] [stdout] test all::partitioning::one_shape___generates_one_node___because_it_defines_outermost_bounding_box ... ok [INFO] [stdout] test all::partitioning::non_empty_group___path_indicates_existing_object___return_object ... ok [INFO] [stdout] test all::partitioning::path_to_existing_object___multiple_levels___returns_object ... ok [INFO] [stdout] test all::patterns::patterns_are_equal ... ok [INFO] [stdout] test all::patterns::a_solid_pattern_is_the_same_everywhere ... ok [INFO] [stdout] test all::patterns::checkers_pattern_combinations ... ok [INFO] [stdout] test all::patterns::patterns_not_equal ... ok [INFO] [stdout] test all::patterns::lighting_with_a_pattern_applied ... ok [INFO] [stdout] test all::patterns::stripes_with_a_pattern_transform ... ok [INFO] [stdout] test all::ppm::print_ppm_output_with_clamping ... ok [INFO] [stdout] test all::partitioning::do_not_add_groups_which_are_empty ... ok [INFO] [stdout] test all::ppm::print_ppm_header_for_empty_canvas ... ok [INFO] [stdout] test all::ppm::print_ppm_output_without_clamping ... ok [INFO] [stdout] test all::ppm::print_ppm_output_max_70_chars_per_line ... ok [INFO] [stdout] test all::patterns::stripes_with_an_object_transform ... ok [INFO] [stdout] test all::rays::a_ray_parallel_to_the_plane_produces_no_intersects ... ok [INFO] [stdout] test all::patterns::checkers_pattern_alternates_with_x ... ok [INFO] [stdout] test all::patterns::checkers_pattern_alternates_with_y ... ok [INFO] [stdout] test all::rays::a_ray_intersects_a_plane_from_above ... ok [INFO] [stdout] test all::rays::a_coplanar_ray_produces_no_intersects ... ok [INFO] [stdout] test all::rays::a_ray_intersects_a_plane_from_below ... ok [INFO] [stdout] test all::patterns::checkers_pattern_alternates_with_z ... ok [INFO] [stdout] test all::rays::create_ray ... ok [INFO] [stdout] test all::patterns::stripes_with_an_object_and_pattern_transform ... ok [INFO] [stdout] test all::rays::intersect_scaled_sphere_with_a_ray ... ok [INFO] [stdout] test all::patterns::ring_pattern_extends_in_both_x_and_z ... ok [INFO] [stdout] test all::rays::calc_position ... ok [INFO] [stdout] test all::rays::finding_hits_always_the_lowest_non_negative_t ... ok [INFO] [stdout] test all::rays::ray_intersects_sphere_at_tangent ... ok [INFO] [stdout] test all::rays::intersect_translated_sphere_with_a_ray_hit ... ok [INFO] [stdout] test all::rays::finding_hits_when_all_intersections_have_negative_t ... ok [INFO] [stdout] test all::partitioning::objects_placed_in_one_cell___depth2 ... ok [INFO] [stdout] test all::rays::translating_a_ray ... ok [INFO] [stdout] test all::rays::finding_hits_when_some_intersections_have_negative_t ... ok [INFO] [stdout] test all::rays::ray_originates_in_front_of_sphere ... ok [INFO] [stdout] test all::rays::intersect_translated_sphere_with_a_ray_miss ... ok [INFO] [stdout] test all::rays::create_intersection ... ok [INFO] [stdout] test all::rays::ray_intersects_sphere ... ok [INFO] [stdout] test all::shape::bounds::cube_bounds ... ok [INFO] [stdout] test all::shape::bounds::bounds_of_empty_group___cannot_contain_any_bound ... ok [INFO] [stdout] test all::shape::bounds::bounds_of_empty_group___cannot_intersect_any_ray ... ok [INFO] [stdout] test all::shape::bounds::enclose_two_shapes___order_doesnt_matter ... ok [INFO] [stdout] test all::rays::ray_originates_inside_sphere ... ok [INFO] [stdout] test all::rays::scaling_a_ray ... ok [INFO] [stdout] test all::shape::bounds::cube_bounds_determined_by_transformation ... ok [INFO] [stdout] test all::shape::bounds::contains___when_rhs_completely_outside_lhs___lhs_does_not_contain_rhs ... ok [INFO] [stdout] test all::shape::bounds::bounds_in_group_affected_by_nested_group_transform ... ok [INFO] [stdout] test all::shape::bounds::contains___when_rhs_includes_space_outside_lhs___lhs_does_not_contain_rhs ... ok [INFO] [stdout] test all::rays::ray_misses_sphere ... ok [INFO] [stdout] test all::shape::bounds::contains___returns_true_if_rhs_within_lhs ... ok [INFO] [stdout] test all::shape::bounds::contains___a_bounds_contains_itself ... ok [INFO] [stdout] test all::shape::bounds::enclose_two_shapes___produces_smallest_bounding_box_that_contains_them ... ok [INFO] [stdout] test all::shape::bounds::format_bounds ... ok [INFO] [stdout] test all::shape::cubes::when_rays_miss_a_cube___return_no_intersections ... ok [INFO] [stdout] test all::shape::cylinders::cylinder___default_extents_are_infinite ... ok [INFO] [stdout] test all::shape::bounds::finite_cylinder_bounds ... ok [INFO] [stdout] test all::shape::cylinders::cylinder___infinite_cylinders_are_not_closed ... ok [INFO] [stdout] test all::shape::cylinders::cylinder___differ_only_by_closed_are_not_equal ... ok [INFO] [stdout] test all::shape::cubes::normal_on_a_cube ... ok [INFO] [stdout] test all::shape::bounds::group_bounds_encompasses_all_members ... ok [INFO] [stdout] test all::shape::bounds::sphere_bounds ... ok [INFO] [stdout] test all::shape::bounds::inf_cylinder_bounds ... ok [INFO] [stdout] test all::shape::bounds::plane_bounds ... ok [INFO] [stdout] test all::shape::bounds::group_bounds_is_origin_if_no_members ... ok [INFO] [stdout] test all::shape::bounds::group_minima_and_maxima_are_dictated_by_its_members_bounds ... ok [INFO] [stdout] test all::shape::cubes::ray_intersects_unit_cube___at_faces_1_unit_away_from_origin ... ok [INFO] [stdout] test all::shape::bounds::two_groups_and_intersect_them ... ok [INFO] [stdout] test all::shape::cylinders::cylinder___intersect_end_caps ... ok [INFO] [stdout] test all::shape::cylinders::cylinder___with_different_limits___are_not_equal ... ok [INFO] [stdout] test all::shape::cylinders::cylinder___with_same_limits___compare_equal ... ok [INFO] [stdout] test all::shape::groups::can_create_group_with_various_objects_as_children ... ok [INFO] [stdout] test all::shape::groups::create_with_nested_groups ... ok [INFO] [stdout] test all::shape::groups::format_group_object ... ok [INFO] [stdout] test all::shape::groups::when_intersect_with_non_empty_group___can_produce_no_intersections ... ok [INFO] [stdout] test all::shape::groups::when_intersect_with_non_empty_group___can_produce_intersections ... ok [INFO] [stdout] test all::shape::cylinders::rays_miss_a_cylinder ... ok [INFO] [stdout] test all::shape::cylinders::normal_on_a_cylinder ... ok [INFO] [stdout] test all::shape::cylinders::cylinder___normal_on_end_caps ... ok [INFO] [stdout] test all::shape::cylinders::cylinder___when_ray_hits_between_limits___is_intersected ... ok [INFO] [stdout] test all::shape::cylinders::ray_hits_a_cylinder ... ok [INFO] [stdout] test all::shape::groups::intersect_transforms_world_point_to_object_point ... ok [INFO] [stdout] test all::shape::groups::intersect_group___must_account_for_groups_transformation ... ok [INFO] [stdout] test all::shape::groups::when_intersecting_with_empty_group___produces_no_intersections ... ok [INFO] [stdout] test all::shape::smooth_triangles::intersection_with_smooth_triangle ... ok [INFO] [stdout] test all::shape::spheres::change_a_spheres_transform ... ok [INFO] [stdout] test all::shape::spheres::default_transformation_is_identity ... ok [INFO] [stdout] test all::shape::spheres::create_glass_sphere ... ok [INFO] [stdout] test all::shape::planes::after_transformation___normal_of_a_plane_is_constant_everywhere ... ok [INFO] [stdout] test all::shape::planes::normal_of_untransformed_plane___is_up ... ok [INFO] [stdout] test all::shape::smooth_triangles::bounds_of_smooth_triangle ... ok [INFO] [stdout] test all::shape::smooth_triangles::an_intersection_with_smooth_triangle_stores_u_v ... ok [INFO] [stdout] test all::rays::finding_hits_when_t_values_are_positive ... ok [INFO] [stdout] test all::shape::spheres::what_is_the_normal_on_a_sphere_on_x_axis ... ok [INFO] [stdout] test all::shape::spheres::what_is_the_normal_on_a_sphere_on_z_axis ... ok [INFO] [stdout] test all::shape::spheres::format_sphere_object ... ok [INFO] [stdout] test all::shape::triangles::normal_for_triangle ... ok [INFO] [stdout] test all::shape::triangles::parallel_ray___does_not_intersect_triangle ... ok [INFO] [stdout] test all::shape::spheres::reflect_vector_off_slanted_surface ... ok [INFO] [stdout] test all::shape::spheres::normal_on_non_axial_point ... ok [INFO] [stdout] test all::shape::triangles::normal_for_triangle___points_out_from_anticlockwise_face ... ok [INFO] [stdout] test all::shape::spheres::reflect_a_vector_approaching_at_45_deg ... ok [INFO] [stdout] test all::shape::triangles::ray_misses_the_p2_p1_edge ... ok [INFO] [stdout] test all::shape::smooth_triangles::use_intersection_uv_to_interpolate_the_normal ... ok [INFO] [stdout] test all::shape::spheres::normal_on_translated_sphere ... ok [INFO] [stdout] test all::shape::spheres::normal_on_transformed_sphere ... ok [INFO] [stdout] test all::shape::spheres::what_is_the_normal_on_a_sphere_on_y_axis ... ok [INFO] [stdout] test all::shape::triangles::ray_misses_the_p2_p3_edge ... ok [INFO] [stdout] test all::wavefront::read_in_triangles ... ok [INFO] [stdout] test all::wavefront::unknown_instructions___produces_no_objects ... ok [INFO] [stdout] test all::wavefront::vertex_normals___translate_to_smooth_triangles ... ok [INFO] [stdout] test all::wavefront::when_face_specifies_one_vertex_normal___all_must_specify_normals ... ok [INFO] [stdout] test all::wavefront::extract_groups ... ok [INFO] [stdout] test all::shape::triangles::ray_misses_the_p3_p1_edge ... ok [INFO] [stdout] test all::shape::triangles::ray_strikes_the_triangle ... ok [INFO] [stdout] test all::wavefront::when_faces_have_two_slashes___error_if_normal_index_not_given ... ok [INFO] [stdout] test all::wavefront::face_must_have_three_vertices ... ok [INFO] [stdout] test all::wavefront::read_empty_file___produces_no_objects ... ok [INFO] [stdout] test all::wavefront::bad_instruction_if_vertex_is_not_triple ... ok [INFO] [stdout] test all::wavefront::fan_triangulation ... ok [INFO] [stdout] test all::partitioning::a_shape_placed_in_each_eighth ... ok [INFO] [stdout] test all::shape::triangles::bounds_for_a_triangle ... ok [INFO] [stdout] test all::wavefront::when_faces_only_has_one_slash___error ... ok [INFO] [stdout] test all::shape::spheres::a_normal_is_normalised ... ok [INFO] [stdout] test all::shape::groups::can_create_empty_group ... ok [INFO] [stdout] test all::wavefront::zero_index_for_face_is_illegal ... ok [INFO] [stdout] test all::world::point_not_in_shadow_when_light_source_between_point_and_object ... ok [INFO] [stdout] test all::world::point_not_in_shadow_when_nothing_colinear_with_point_and_light ... ok [INFO] [stdout] test all::world::in_shadow_when_object_between_light_and_point ... ok [INFO] [stdout] test all::world::an_intersection_in_shadow_returns_ambient_colour ... ok [INFO] [stdout] test all::world::colour_when_a_ray_hits___the_colour_is_consequence_of_material_and_light_colour ... ok [INFO] [stdout] test all::world::properties_of_default_world ... ok [INFO] [stdout] test all::world::when_determining_colour___determine_colour_of_first_hit_along_the_ray ... ok [INFO] [stdout] test all::world::create_a_world ... ok [INFO] [stdout] test all::world::point_not_in_shadow_when_point_between_light_source_and_object ... ok [INFO] [stdout] test all::world::colour_when_a_ray_misses___is_black ... ok [INFO] [stdout] test all::partitioning::objects_at_multiple_levels ... ok [INFO] [stdout] [INFO] [stdout] test result: ok. 226 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] [stderr] Doc-tests bucktracer [INFO] [stdout] [INFO] [stdout] running 0 tests [INFO] [stdout] [INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out [INFO] [stdout] [INFO] running `"docker" "inspect" "8774c7413691ebee0cab127e32d137f2541da6bcfae9e36c6ceecd806706a3bc"` [INFO] running `"docker" "rm" "-f" "8774c7413691ebee0cab127e32d137f2541da6bcfae9e36c6ceecd806706a3bc"` [INFO] [stdout] 8774c7413691ebee0cab127e32d137f2541da6bcfae9e36c6ceecd806706a3bc