diff --git a/frc971/control_loops/drivetrain/camera_test.cc b/frc971/control_loops/drivetrain/camera_test.cc
index c830038..a55ebad 100644
--- a/frc971/control_loops/drivetrain/camera_test.cc
+++ b/frc971/control_loops/drivetrain/camera_test.cc
@@ -197,7 +197,7 @@
   EXPECT_LT(5, view.noise.height);
 }
 
-INSTANTIATE_TEST_CASE_P(
+INSTANTIATE_TEST_SUITE_P(
     InvalidMeasurements, CameraViewParamTest,
     ::testing::Values(
         // heading, distance, height, skew
diff --git a/frc971/control_loops/drivetrain/distance_spline_test.cc b/frc971/control_loops/drivetrain/distance_spline_test.cc
index 1ed756a..5b244a6 100644
--- a/frc971/control_loops/drivetrain/distance_spline_test.cc
+++ b/frc971/control_loops/drivetrain/distance_spline_test.cc
@@ -171,7 +171,7 @@
   }
 }
 
-INSTANTIATE_TEST_CASE_P(
+INSTANTIATE_TEST_SUITE_P(
     DistanceSplineTest, ParameterizedDistanceSplineTest,
     ::testing::Values(
         ::std::vector<Spline>(
diff --git a/frc971/control_loops/drivetrain/drivetrain_lib_test.cc b/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
index 1b353a1..64fb0b8 100644
--- a/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
+++ b/frc971/control_loops/drivetrain/drivetrain_lib_test.cc
@@ -868,7 +868,7 @@
   VerifyNearSplineGoal();
 }
 
-INSTANTIATE_TEST_CASE_P(DriveSplinesForwardsAndBackwards,
+INSTANTIATE_TEST_SUITE_P(DriveSplinesForwardsAndBackwards,
                         DrivetrainBackwardsParamTest,
                         ::testing::Values(false, true));
 
diff --git a/frc971/control_loops/drivetrain/hybrid_ekf_test.cc b/frc971/control_loops/drivetrain/hybrid_ekf_test.cc
index 9d9517d..b491719 100644
--- a/frc971/control_loops/drivetrain/hybrid_ekf_test.cc
+++ b/frc971/control_loops/drivetrain/hybrid_ekf_test.cc
@@ -159,7 +159,7 @@
   }
 }
 
-INSTANTIATE_TEST_CASE_P(
+INSTANTIATE_TEST_SUITE_P(
     CheckMathTest, HybridEkfDiffEqTest,
     ::testing::Values(DiffEqInputs{State::Zero(), Input::Zero(), false},
                       DiffEqInputs{State::Zero(), Input::Zero(), true},
@@ -337,7 +337,7 @@
 }
 
 // Ensure that we check kSaveSamples - 1, for potential corner cases.
-INSTANTIATE_TEST_CASE_P(OldCorrectionTest, HybridEkfOldCorrectionsTest,
+INSTANTIATE_TEST_SUITE_P(OldCorrectionTest, HybridEkfOldCorrectionsTest,
                         ::testing::Values(0, 1, 10,
                                           HybridEkf<>::kSaveSamples - 1));
 
diff --git a/frc971/control_loops/drivetrain/line_follow_drivetrain_test.cc b/frc971/control_loops/drivetrain/line_follow_drivetrain_test.cc
index c6bedf6..bb872dc 100644
--- a/frc971/control_loops/drivetrain/line_follow_drivetrain_test.cc
+++ b/frc971/control_loops/drivetrain/line_follow_drivetrain_test.cc
@@ -300,7 +300,7 @@
   target_selector_.set_has_target(true);
   // Start the state at zero and then put the target in a
   state_.setZero();
-  driver_model_ = [this](const ::Eigen::Matrix<double, 5, 1> &state) {
+  driver_model_ = [](const ::Eigen::Matrix<double, 5, 1> &state) {
     return 0.2 *
            (state.topRows<2>() - GetParam().abs_pos().topRows<2>()).norm();
   };
@@ -308,7 +308,7 @@
   RunForTime(chrono::seconds(10));
   VerifyNearGoal();
 }
-INSTANTIATE_TEST_CASE_P(TargetPosTest, LineFollowDrivetrainTargetParamTest,
+INSTANTIATE_TEST_SUITE_P(TargetPosTest, LineFollowDrivetrainTargetParamTest,
                         ::testing::Values(Pose({0.0, 0.0, 0.0}, 0.0),
                                           Pose({1.0, 0.0, 0.0}, 0.0),
                                           Pose({3.0, 1.0, 0.0}, 0.0),
@@ -329,7 +329,7 @@
   VerifyNearGoal();
 }
 
-INSTANTIATE_TEST_CASE_P(
+INSTANTIATE_TEST_SUITE_P(
     PositionAndModelTest, LineFollowDrivetrainParamTest,
     ::testing::Combine(
         ::testing::Values(
diff --git a/frc971/control_loops/drivetrain/trajectory_test.cc b/frc971/control_loops/drivetrain/trajectory_test.cc
index c13d844..806e020 100644
--- a/frc971/control_loops/drivetrain/trajectory_test.cc
+++ b/frc971/control_loops/drivetrain/trajectory_test.cc
@@ -529,7 +529,7 @@
   trajectory->LimitVelocity(1.5, 1.5, 0.5);
 }
 
-INSTANTIATE_TEST_CASE_P(
+INSTANTIATE_TEST_SUITE_P(
     SplineTest, ParameterizedSplineTest,
     ::testing::Values(
         MakeSplineTestParams(
