diff --git a/delegate/test/ActivationTest.cpp b/delegate/test/ActivationTest.cpp
index 8f2f198..620c299 100644
--- a/delegate/test/ActivationTest.cpp
+++ b/delegate/test/ActivationTest.cpp
@@ -170,6 +170,32 @@
                    outputExpectedData);
 }
 
+void ActivationLeakyReLuTest(std::vector<armnn::BackendId>& backends)
+{
+    std::vector<float> inputData = {
+            -0.1f, -0.2f, -0.3f, -0.4f,
+            0.1f,  0.2f,  0.3f,  0.4f,
+            -1.0f, -2.0f, -3.0f, -4.0f,
+            1.0f,  2.0f,  3.0f,  4.0f
+    };
+
+    float alpha = 0.3f;
+
+    // Calculate output values for input.
+    auto f = [alpha](float value)
+    {
+        return value > 0 ? value : value * alpha;
+    };
+    std::vector<float> outputExpectedData(inputData.size());
+    std::transform(inputData.begin(), inputData.end(), outputExpectedData.begin(), f);
+
+    ActivationTest(tflite::BuiltinOperator_LEAKY_RELU,
+                   backends,
+                   inputData,
+                   outputExpectedData,
+                   alpha);
+}
+
 TEST_SUITE("Activation_CpuRefTests")
 {
 
@@ -209,6 +235,12 @@
     ActivationHardSwishTest(backends);
 }
 
+TEST_CASE ("Activation_LeakyRelu_CpuRef_Test")
+{
+    std::vector<armnn::BackendId> backends = { armnn::Compute::CpuRef };
+    ActivationLeakyReLuTest(backends);
+}
+
 }
 
 TEST_SUITE("Activation_CpuAccTests")
@@ -250,6 +282,12 @@
     ActivationHardSwishTest(backends);
 }
 
+TEST_CASE ("Activation_LeakyRelu_CpuAcc_Test")
+{
+    std::vector<armnn::BackendId> backends = { armnn::Compute::CpuAcc };
+    ActivationLeakyReLuTest(backends);
+}
+
 }
 
 TEST_SUITE("Activation_GpuAccTests")
@@ -291,6 +329,12 @@
     ActivationHardSwishTest(backends);
 }
 
+TEST_CASE ("Activation_LeakyRelu_GpuAcc_Test")
+{
+    std::vector<armnn::BackendId> backends = { armnn::Compute::GpuAcc };
+    ActivationLeakyReLuTest(backends);
+}
+
 }
 
 } // namespace armnnDelegate
\ No newline at end of file
