[test] Move rv_timer_test.c into tests/dif

Signed-off-by: Miguel Young de la Sota <mcyoung@google.com>
diff --git a/ci/run_verilator_pytest.sh b/ci/run_verilator_pytest.sh
index 85cde05..ff57239 100755
--- a/ci/run_verilator_pytest.sh
+++ b/ci/run_verilator_pytest.sh
@@ -18,10 +18,10 @@
   "examples/hello_usbdev/hello_usbdev_sim_verilator.elf"
   "tests/aes_test_sim_verilator.elf"
   "tests/dif_plic_sanitytest_sim_verilator.elf"
+  "tests/dif_rv_timer_sanitytest_sim_verilator.elf"
   "tests/dif_uart_sanitytest_sim_verilator.elf"
   "tests/flash_ctrl_test_sim_verilator.elf"
   "tests/sha256_test_sim_verilator.elf"
-  "tests/rv_timer_test_sim_verilator.elf"
 )
 
 FAIL_TARGETS=()
diff --git a/sw/device/tests/rv_timer_test.c b/sw/device/tests/dif/dif_rv_timer_sanitytest.c
similarity index 82%
rename from sw/device/tests/rv_timer_test.c
rename to sw/device/tests/dif/dif_rv_timer_sanitytest.c
index 4a5f697..4c76d77 100644
--- a/sw/device/tests/rv_timer_test.c
+++ b/sw/device/tests/dif/dif_rv_timer_sanitytest.c
@@ -5,17 +5,14 @@
 #include "sw/device/lib/dif/dif_rv_timer.h"
 
 #include "sw/device/lib/base/log.h"
-#include "sw/device/lib/dif/dif_gpio.h"
 #include "sw/device/lib/handler.h"
 #include "sw/device/lib/irq.h"
-#include "sw/device/lib/pinmux.h"
 #include "sw/device/lib/runtime/check.h"
 #include "sw/device/lib/runtime/hart.h"
 #include "sw/device/lib/runtime/ibex.h"
 #include "sw/device/lib/testing/test_main.h"
 #include "hw/top_earlgrey/sw/autogen/top_earlgrey.h"
 
-static dif_gpio_t gpio;
 static dif_rv_timer_t timer;
 
 // Flag for checking whether the interrupt handler was called. When the handler
@@ -33,58 +30,6 @@
 static const uint64_t kTickFreqHz = 1000 * 1000;  // 1 MHz.
 static const uint64_t kDeadline = 0x10000;        // 10 ms.
 
-const test_config_t kTestConfig = {};
-
-bool test_main(void) {
-  pinmux_init();
-  // Enable GPIO: 0-7 and 16 is input, 8-15 is output
-  dif_gpio_config_t gpio_config = {
-      .base_addr = mmio_region_from_addr(TOP_EARLGREY_GPIO_BASE_ADDR)};
-  CHECK(dif_gpio_init(&gpio_config, &gpio) == kDifGpioOk);
-  CHECK(dif_gpio_output_mode_all_set(&gpio, 0xFF00) == kDifGpioOk);
-
-  irq_global_ctrl(true);
-  irq_timer_ctrl(true);
-
-  mmio_region_t timer_reg =
-      mmio_region_from_addr(TOP_EARLGREY_RV_TIMER_BASE_ADDR);
-  CHECK(dif_rv_timer_init(
-            timer_reg,
-            (dif_rv_timer_config_t){.hart_count = 1, .comparator_count = 1},
-            &timer) == kDifRvTimerOk);
-
-  CHECK(dif_rv_timer_irq_enable(&timer, kHart, kComparator,
-                                kDifRvTimerEnabled) == kDifRvTimerOk);
-
-  dif_rv_timer_tick_params_t tick_params;
-  CHECK(dif_rv_timer_approximate_tick_params(kClockFreqHz, kTickFreqHz,
-                                             &tick_params) == kDifRvTimerOk);
-  CHECK(dif_rv_timer_set_tick_params(&timer, kHart, tick_params) ==
-        kDifRvTimerOk);
-
-  uint64_t current_time;
-  CHECK(dif_rv_timer_counter_read(&timer, kHart, &current_time) ==
-        kDifRvTimerOk);
-  LOG_INFO("Current time: %d; timer theshold: %d", (uint32_t)current_time,
-           (uint32_t)(current_time + kDeadline));
-  CHECK(dif_rv_timer_arm(&timer, kHart, kComparator,
-                         current_time + kDeadline) == kDifRvTimerOk);
-
-  irq_fired = false;
-  CHECK(dif_rv_timer_counter_set_enabled(&timer, kHart, kDifRvTimerEnabled) ==
-        kDifRvTimerOk);
-
-  CHECK(dif_gpio_all_write(&gpio, 0xFF00) == kDifGpioOk);  // all LEDs on
-
-  while (!irq_fired) {
-    wait_for_interrupt();
-  }
-
-  CHECK(dif_gpio_all_write(&gpio, 0xAA00) == kDifGpioOk);  // Test Completed
-
-  return true;
-}
-
 static void test_handler(void) {
   CHECK(!irq_fired, "Entered IRQ handler, but `irq_fired` was not false!");
 
@@ -106,3 +51,45 @@
   test_handler();
   LOG_INFO("Exiting handler_irq_timer()");
 }
+
+const test_config_t kTestConfig = {};
+
+bool test_main(void) {
+  irq_global_ctrl(true);
+  irq_timer_ctrl(true);
+
+  mmio_region_t timer_reg =
+      mmio_region_from_addr(TOP_EARLGREY_RV_TIMER_BASE_ADDR);
+  CHECK(dif_rv_timer_init(
+            timer_reg,
+            (dif_rv_timer_config_t){.hart_count = 1, .comparator_count = 1},
+            &timer) == kDifRvTimerOk);
+
+  dif_rv_timer_tick_params_t tick_params;
+  CHECK(dif_rv_timer_approximate_tick_params(kClockFreqHz, kTickFreqHz,
+                                             &tick_params) ==
+        kDifRvTimerApproximateTickParamsOk);
+  CHECK(dif_rv_timer_set_tick_params(&timer, kHart, tick_params) ==
+        kDifRvTimerOk);
+  CHECK(dif_rv_timer_irq_enable(&timer, kHart, kComparator,
+                                kDifRvTimerEnabled) == kDifRvTimerOk);
+
+  uint64_t current_time;
+  CHECK(dif_rv_timer_counter_read(&timer, kHart, &current_time) ==
+        kDifRvTimerOk);
+  LOG_INFO("Current time: %d; timer theshold: %d", (uint32_t)current_time,
+           (uint32_t)(current_time + kDeadline));
+  CHECK(dif_rv_timer_arm(&timer, kHart, kComparator,
+                         current_time + kDeadline) == kDifRvTimerOk);
+
+  irq_fired = false;
+  CHECK(dif_rv_timer_counter_set_enabled(&timer, kHart, kDifRvTimerEnabled) ==
+        kDifRvTimerOk);
+
+  while (!irq_fired) {
+    LOG_INFO("Waiting...");
+    wait_for_interrupt();
+  }
+
+  return true;
+}
diff --git a/sw/device/tests/dif/meson.build b/sw/device/tests/dif/meson.build
index e06b6b9..6388ff6 100644
--- a/sw/device/tests/dif/meson.build
+++ b/sw/device/tests/dif/meson.build
@@ -113,6 +113,7 @@
     ],
   ),
 )
+sw_tests += { 'dif_plic_sanitytest': dif_plic_sanitytest_lib }
 
 dif_uart_sanitytest_lib = declare_dependency(
   link_with: static_library(
@@ -125,8 +126,20 @@
     ],
   ),
 )
+sw_tests += { 'dif_uart_sanitytest': dif_uart_sanitytest_lib }
 
-sw_tests += {
-  'dif_plic_sanitytest': dif_plic_sanitytest_lib,
-  'dif_uart_sanitytest': dif_uart_sanitytest_lib,
-}
+dif_rv_timer_sanitytest_lib = declare_dependency(
+  link_with: static_library(
+    'dif_rv_timer_sanitytest_lib',
+    sources: ['dif_rv_timer_sanitytest.c'],
+    dependencies: [
+      dif_rv_timer,
+      sw_lib_base_log,
+      sw_lib_mmio,
+      sw_lib_runtime_hart,
+      sw_lib_irq,
+    ],
+  ),
+)
+sw_tests += { 'dif_rv_timer_sanitytest': dif_rv_timer_sanitytest_lib }
+
diff --git a/sw/device/tests/meson.build b/sw/device/tests/meson.build
index b4ef197..512b613 100644
--- a/sw/device/tests/meson.build
+++ b/sw/device/tests/meson.build
@@ -37,20 +37,6 @@
   ),
 )
 
-rv_timer_test_lib = declare_dependency(
-  link_with: static_library(
-    'rv_timer_test_lib',
-    sources: ['rv_timer_test.c'],
-    dependencies: [
-      sw_lib_irq,
-      sw_lib_pinmux,
-      dif_rv_timer,
-      sw_lib_base_log,
-      sw_lib_dif_gpio,
-    ],
-  ),
-)
-
 sha256_test_lib = declare_dependency(
   link_with: static_library(
     'sha256_test_lib',
@@ -66,7 +52,6 @@
 sw_tests += {
   'aes_test': aes_test_lib,
   'flash_ctrl_test': flash_ctrl_test_lib,
-  'rv_timer_test': rv_timer_test_lib,
   'sha256_test': sha256_test_lib,
 }