UPSTREAM: tests/: Add flashrom.c unit tests

BUG=b:157280555
BRANCH=none
TEST=builds

Original-Change-Id: I2d9213f98c6c9639f2417466ba4895117e8d600a
Original-Signed-off-by: Edward O'Callaghan <quasisec@google.com>
Original-Reviewed-on: https://review.coreboot.org/c/flashrom/+/41646
Original-Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Original-Reviewed-by: Angel Pons <th3fanbus@gmail.com>
(cherry picked from commit 629b8f06ec59d2112539efe161f121ab22d99ec8)

Cq-Depend: chromium:2879373
Change-Id: Ifab3894d9d176227c8a4346d882777621bf4c936
Signed-off-by: Anastasia Klimchuk <aklm@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/flashrom/+/2879376
Reviewed-by: Sean Paul <seanpaul@chromium.org>
Reviewed-by: Edward O'Callaghan <quasisec@chromium.org>
Reviewed-by: Nikolai Artemiev <nartemiev@google.com>
Tested-by: Edward O'Callaghan <quasisec@chromium.org>
Commit-Queue: Edward O'Callaghan <quasisec@chromium.org>
diff --git a/tests/flashrom.c b/tests/flashrom.c
new file mode 100644
index 0000000..ad46dd8
--- /dev/null
+++ b/tests/flashrom.c
@@ -0,0 +1,36 @@
+#include <include/test.h>
+
+#include "programmer.h"
+
+void flashbuses_to_text_test_success(void **state)
+{
+	(void) state; /* unused */
+
+	enum chipbustype bustype;
+
+	bustype = BUS_NONSPI;
+	assert_string_equal(flashbuses_to_text(bustype), "Non-SPI");
+
+	bustype |= BUS_PARALLEL;
+	assert_string_not_equal(flashbuses_to_text(bustype), "Non-SPI, Parallel");
+
+	bustype = BUS_PARALLEL;
+	bustype |= BUS_LPC;
+	assert_string_equal(flashbuses_to_text(bustype), "Parallel, LPC");
+
+	bustype |= BUS_FWH;
+	//BUS_NONSPI = BUS_PARALLEL | BUS_LPC | BUS_FWH,
+	assert_string_equal(flashbuses_to_text(bustype), "Non-SPI");
+
+	bustype |= BUS_SPI;
+	assert_string_equal(flashbuses_to_text(bustype), "Parallel, LPC, FWH, SPI");
+
+	bustype |= BUS_PROG;
+	assert_string_equal(
+			flashbuses_to_text(bustype),
+			"Parallel, LPC, FWH, SPI, Programmer-specific"
+	);
+
+	bustype = BUS_NONE;
+	assert_string_equal(flashbuses_to_text(bustype), "None");
+}
diff --git a/tests/meson.build b/tests/meson.build
index 76088c2..1e7ef4a 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -2,6 +2,7 @@
 
 srcs = [
   'tests.c',
+  'flashrom.c',
   'spi25.c',
 ]
 
diff --git a/tests/tests.c b/tests/tests.c
index 82563ac..247c811 100644
--- a/tests/tests.c
+++ b/tests/tests.c
@@ -21,6 +21,11 @@
 {
 	int ret = 0;
 
+	const struct CMUnitTest flashrom_tests[] = {
+		cmocka_unit_test(flashbuses_to_text_test_success),
+	};
+	ret |= cmocka_run_group_tests_name("flashrom.c tests", flashrom_tests, NULL, NULL);
+
 	const struct CMUnitTest spi25_tests[] = {
 		cmocka_unit_test(spi_write_enable_test_success),
 		cmocka_unit_test(spi_write_disable_test_success),
diff --git a/tests/tests.h b/tests/tests.h
index 6eafeea..3b91f65 100644
--- a/tests/tests.h
+++ b/tests/tests.h
@@ -1,6 +1,9 @@
 #ifndef TESTS_H
 #define TESTS_H
 
+/* flashrom.c */
+void flashbuses_to_text_test_success(void **state);
+
 /* spi25.c */
 void spi_write_enable_test_success(void **state);
 void spi_write_disable_test_success(void **state);