diff --git a/test/Makefile.am b/test/Makefile.am
index d9fd289..9df14db 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -11,7 +11,8 @@
 # Run all 'check' test programs
 check_PROGRAMS = \
 	ipmi_starttransfer_unittest \
-	ipmi_flashdata_unittest
+	ipmi_flashdata_unittest \
+	ipmi_validate_unittest
 
 TESTS = $(check_PROGRAMS)
 
@@ -20,3 +21,6 @@
 
 ipmi_flashdata_unittest_SOURCES = ipmi_flashdata_unittest.cpp
 ipmi_flashdata_unittest_LDADD = $(top_builddir)/ipmi.o
+
+ipmi_validate_unittest_SOURCES = ipmi_validate_unittest.cpp
+ipmi_validate_unittest_LDADD = $(top_builddir)/ipmi.o
diff --git a/test/ipmi_flashdata_unittest.cpp b/test/ipmi_flashdata_unittest.cpp
index dcb27f6..9121d97 100644
--- a/test/ipmi_flashdata_unittest.cpp
+++ b/test/ipmi_flashdata_unittest.cpp
@@ -14,46 +14,6 @@
 // SoC.
 #define MAX_IPMI_BUFFER 64
 
-TEST(IpmiFlashData, InvalidRequestLengthReturnsFailure)
-{
-    // This request isn't large enough to be well-formed.
-
-    StrictMock<UpdaterMock> updater;
-
-    size_t dataLen;
-    uint8_t request[MAX_IPMI_BUFFER] = {0};
-    uint8_t reply[MAX_IPMI_BUFFER] = {0};
-
-    struct ChunkHdr tx;
-    tx.cmd = FlashSubCmds::flashDataBlock;
-    tx.offset = 0x00;
-    std::memcpy(request, &tx, sizeof(tx));
-
-    dataLen = sizeof(tx) - 1; // It's too small to be a valid packet.
-
-    EXPECT_EQ(IPMI_CC_INVALID, dataBlock(&updater, request, reply, &dataLen));
-}
-
-TEST(IpmiFlashData, NoDataReturnsFailure)
-{
-    // If the request has no data, it's invalid, returns failure.
-
-    StrictMock<UpdaterMock> updater;
-
-    size_t dataLen;
-    uint8_t request[MAX_IPMI_BUFFER] = {0};
-    uint8_t reply[MAX_IPMI_BUFFER] = {0};
-
-    struct ChunkHdr tx;
-    tx.cmd = FlashSubCmds::flashDataBlock;
-    tx.offset = 0x00;
-    std::memcpy(request, &tx, sizeof(tx));
-
-    dataLen = sizeof(tx); // It's only the header, so no data.
-
-    EXPECT_EQ(IPMI_CC_INVALID, dataBlock(&updater, request, reply, &dataLen));
-}
-
 TEST(IpmiFlashData, DataReceivedIsPassedOnOk)
 {
     // If valid data was passed in, it'll pass it onto the update handler.
diff --git a/test/ipmi_starttransfer_unittest.cpp b/test/ipmi_starttransfer_unittest.cpp
index 448287b..4bd9e35 100644
--- a/test/ipmi_starttransfer_unittest.cpp
+++ b/test/ipmi_starttransfer_unittest.cpp
@@ -15,27 +15,6 @@
 #define MAX_IPMI_BUFFER 64
 #define THIRTYTWO_MIB 33554432
 
-TEST(IpmiStartTransferTest, InvalidRequestLengthReturnsFailure)
-{
-    // Verify that the request is sanity checked w.r.t length.
-
-    StrictMock<UpdaterMock> updater;
-
-    size_t dataLen;
-    uint8_t request[MAX_IPMI_BUFFER] = {0};
-    uint8_t reply[MAX_IPMI_BUFFER] = {0};
-
-    struct StartTx tx;
-    tx.cmd = FlashSubCmds::flashStartTransfer;
-    tx.length = THIRTYTWO_MIB;
-    std::memcpy(request, &tx, sizeof(tx));
-
-    dataLen = sizeof(tx) - 1; // It's too small to be a valid packet.
-
-    EXPECT_EQ(IPMI_CC_INVALID,
-              startTransfer(&updater, request, reply, &dataLen));
-}
-
 TEST(IpmiStartTransferTest, ValidRequestBoringCase)
 {
     // Verify that if the request is valid it calls into the flash updater.
diff --git a/test/ipmi_validate_unittest.cpp b/test/ipmi_validate_unittest.cpp
new file mode 100644
index 0000000..ee600a0
--- /dev/null
+++ b/test/ipmi_validate_unittest.cpp
@@ -0,0 +1,39 @@
+#include "ipmi.hpp"
+
+#include <gtest/gtest.h>
+
+// ipmid.hpp isn't installed where we can grab it and this value is per BMC
+// SoC.
+#define MAX_IPMI_BUFFER 64
+
+TEST(IpmiValidateTest, BoringValidateCheckReturnsTrue)
+{
+    // Verify the validate check can return true when it's happy.
+    auto cmd = FlashSubCmds::flashStartTransfer;
+    size_t dataLen = sizeof(struct StartTx);
+    EXPECT_TRUE(validateRequestLength(cmd, dataLen));
+}
+
+TEST(IpmiValidateTest, InvalidLengthStartTransferReturnsFalse)
+{
+    // Verify that the request is sanity checked w.r.t length.
+    auto cmd = FlashSubCmds::flashStartTransfer;
+    size_t dataLen = sizeof(struct StartTx) - 1;
+    EXPECT_FALSE(validateRequestLength(cmd, dataLen));
+}
+
+TEST(IpmiValidateTest, InvalidLengthDataBlockReturnsFalse)
+{
+    // This request isn't large enough to be well-formed.
+    auto cmd = FlashSubCmds::flashDataBlock;
+    size_t dataLen = sizeof(struct ChunkHdr) - 1;
+    EXPECT_FALSE(validateRequestLength(cmd, dataLen));
+}
+
+TEST(IpmiValidateTest, DataBlockNoDataReturnsFalse)
+{
+    // If the request has no data, it's invalid, returns failure.
+    auto cmd = FlashSubCmds::flashDataBlock;
+    size_t dataLen = sizeof(struct ChunkHdr);
+    EXPECT_FALSE(validateRequestLength(cmd, dataLen));
+}
