mirror of
https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git
synced 2026-10-24 00:48:53 +03:00
tests: add line value enums for gpiosim GLib wrapper
libgpiosim has a dedicated enum type for line values but the GLib wrapper still uses magic numbers (0 and 1). Add an enum type for the wrapper and use it across all test cases. Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
@@ -416,25 +416,32 @@ const gchar *g_gpiosim_chip_get_name(GPIOSimChip *self)
|
||||
return g_gpiosim_chip_get_string_prop(self, "name");
|
||||
}
|
||||
|
||||
gint _g_gpiosim_chip_get_value(GPIOSimChip *chip, guint offset, GError **err)
|
||||
GPIOSimValue
|
||||
_g_gpiosim_chip_get_value(GPIOSimChip *chip, guint offset, GError **err)
|
||||
{
|
||||
gint val;
|
||||
enum gpiosim_value val;
|
||||
|
||||
val = gpiosim_bank_get_value(chip->bank, offset);
|
||||
if (val < 0) {
|
||||
switch (val) {
|
||||
case GPIOSIM_VALUE_ERROR:
|
||||
g_set_error(err, G_GPIOSIM_ERROR,
|
||||
G_GPIOSIM_ERR_GET_VALUE_FAILED,
|
||||
"Unable to read the line value: %s",
|
||||
g_strerror(errno));
|
||||
return -1;
|
||||
return G_GPIOSIM_VALUE_ERROR;
|
||||
case GPIOSIM_VALUE_INACTIVE:
|
||||
return G_GPIOSIM_VALUE_INACTIVE;
|
||||
case GPIOSIM_VALUE_ACTIVE:
|
||||
return G_GPIOSIM_VALUE_ACTIVE;
|
||||
}
|
||||
|
||||
return val;
|
||||
g_error("Invalid line value returned by gpiosim");
|
||||
}
|
||||
|
||||
void g_gpiosim_chip_set_pull(GPIOSimChip *chip, guint offset, GPIOSimPull pull)
|
||||
{
|
||||
gint ret, sim_pull;
|
||||
enum gpiosim_pull sim_pull;
|
||||
gint ret;
|
||||
|
||||
switch (pull) {
|
||||
case G_GPIOSIM_PULL_DOWN:
|
||||
|
||||
@@ -10,6 +10,12 @@
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
typedef enum {
|
||||
G_GPIOSIM_VALUE_ERROR = -1,
|
||||
G_GPIOSIM_VALUE_INACTIVE = 0,
|
||||
G_GPIOSIM_VALUE_ACTIVE = 1,
|
||||
} GPIOSimValue;
|
||||
|
||||
typedef enum {
|
||||
G_GPIOSIM_PULL_UP = 1,
|
||||
G_GPIOSIM_PULL_DOWN,
|
||||
@@ -54,7 +60,8 @@ G_DECLARE_FINAL_TYPE(GPIOSimChip, g_gpiosim_chip, G_GPIOSIM, CHIP, GObject);
|
||||
const gchar *g_gpiosim_chip_get_dev_path(GPIOSimChip *self);
|
||||
const gchar *g_gpiosim_chip_get_name(GPIOSimChip *self);
|
||||
|
||||
gint _g_gpiosim_chip_get_value(GPIOSimChip *self, guint offset, GError **err);
|
||||
GPIOSimValue
|
||||
_g_gpiosim_chip_get_value(GPIOSimChip *self, guint offset, GError **err);
|
||||
void g_gpiosim_chip_set_pull(GPIOSimChip *self, guint offset, GPIOSimPull pull);
|
||||
|
||||
#define g_gpiosim_chip_get_value(self, offset) \
|
||||
|
||||
@@ -310,13 +310,13 @@ GPIOD_TEST_CASE(set_global_output_values)
|
||||
request = gpiod_test_request_lines_or_fail(chip, NULL, config);
|
||||
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 0), ==,
|
||||
GPIOD_LINE_VALUE_ACTIVE);
|
||||
G_GPIOSIM_VALUE_ACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 1), ==,
|
||||
GPIOD_LINE_VALUE_INACTIVE);
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 2), ==,
|
||||
GPIOD_LINE_VALUE_ACTIVE);
|
||||
G_GPIOSIM_VALUE_ACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 3), ==,
|
||||
GPIOD_LINE_VALUE_INACTIVE);
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
}
|
||||
|
||||
GPIOD_TEST_CASE(read_back_global_output_values)
|
||||
|
||||
@@ -158,10 +158,10 @@ GPIOD_TEST_CASE(default_output_value)
|
||||
|
||||
for (i = 0; i < 4; i++)
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, offsets[i]), ==,
|
||||
GPIOD_LINE_VALUE_ACTIVE);
|
||||
G_GPIOSIM_VALUE_ACTIVE);
|
||||
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 2), ==,
|
||||
GPIOD_LINE_VALUE_INACTIVE);
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
}
|
||||
|
||||
GPIOD_TEST_CASE(read_all_values)
|
||||
@@ -243,6 +243,13 @@ GPIOD_TEST_CASE(set_all_values)
|
||||
GPIOD_LINE_VALUE_ACTIVE,
|
||||
GPIOD_LINE_VALUE_ACTIVE
|
||||
};
|
||||
static const enum gpiod_line_value sim_values[] = {
|
||||
G_GPIOSIM_VALUE_ACTIVE,
|
||||
G_GPIOSIM_VALUE_INACTIVE,
|
||||
G_GPIOSIM_VALUE_ACTIVE,
|
||||
G_GPIOSIM_VALUE_ACTIVE,
|
||||
G_GPIOSIM_VALUE_ACTIVE
|
||||
};
|
||||
|
||||
g_autoptr(GPIOSimChip) sim = g_gpiosim_chip_new("num-lines", 8, NULL);
|
||||
g_autoptr(struct_gpiod_chip) chip = NULL;
|
||||
@@ -269,7 +276,7 @@ GPIOD_TEST_CASE(set_all_values)
|
||||
|
||||
for (i = 0; i < 5; i++)
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, offsets[i]), ==,
|
||||
values[i]);
|
||||
sim_values[i]);
|
||||
}
|
||||
|
||||
GPIOD_TEST_CASE(set_values_subset_of_lines)
|
||||
@@ -306,11 +313,11 @@ GPIOD_TEST_CASE(set_values_subset_of_lines)
|
||||
gpiod_test_return_if_failed();
|
||||
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 0), ==,
|
||||
GPIOD_LINE_VALUE_ACTIVE);
|
||||
G_GPIOSIM_VALUE_ACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 1), ==,
|
||||
GPIOD_LINE_VALUE_INACTIVE);
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 3), ==,
|
||||
GPIOD_LINE_VALUE_ACTIVE);
|
||||
G_GPIOSIM_VALUE_ACTIVE);
|
||||
}
|
||||
|
||||
GPIOD_TEST_CASE(set_line_after_requesting)
|
||||
@@ -338,10 +345,14 @@ GPIOD_TEST_CASE(set_line_after_requesting)
|
||||
|
||||
gpiod_line_request_set_value(request, 1, GPIOD_LINE_VALUE_ACTIVE);
|
||||
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 0), ==, 0);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 1), ==, 1);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 3), ==, 0);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 4), ==, 0);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 0), ==,
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 1), ==,
|
||||
G_GPIOSIM_VALUE_ACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 3), ==,
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 4), ==,
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
}
|
||||
|
||||
GPIOD_TEST_CASE(request_survives_parent_chip)
|
||||
@@ -442,7 +453,8 @@ GPIOD_TEST_CASE(active_low_read_value)
|
||||
value = gpiod_line_request_get_value(request, 2);
|
||||
g_assert_cmpint(value, ==, GPIOD_LINE_VALUE_ACTIVE);
|
||||
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 3), ==, 0);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 3), ==,
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
}
|
||||
|
||||
GPIOD_TEST_CASE(reconfigure_lines)
|
||||
@@ -478,10 +490,14 @@ GPIOD_TEST_CASE(reconfigure_lines)
|
||||
|
||||
request = gpiod_test_request_lines_or_fail(chip, NULL, line_cfg);
|
||||
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 0), ==, 1);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 1), ==, 0);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 2), ==, 1);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 3), ==, 0);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 0), ==,
|
||||
G_GPIOSIM_VALUE_ACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 1), ==,
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 2), ==,
|
||||
G_GPIOSIM_VALUE_ACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 3), ==,
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
|
||||
gpiod_line_config_reset(line_cfg);
|
||||
|
||||
@@ -501,10 +517,14 @@ GPIOD_TEST_CASE(reconfigure_lines)
|
||||
g_assert_cmpint(ret, ==, 0);
|
||||
gpiod_test_return_if_failed();
|
||||
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 0), ==, 0);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 1), ==, 1);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 2), ==, 0);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 3), ==, 1);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 0), ==,
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 1), ==,
|
||||
G_GPIOSIM_VALUE_ACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 2), ==,
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 3), ==,
|
||||
G_GPIOSIM_VALUE_ACTIVE);
|
||||
}
|
||||
|
||||
GPIOD_TEST_CASE(request_lines_with_unordered_offsets)
|
||||
@@ -543,17 +563,17 @@ GPIOD_TEST_CASE(request_lines_with_unordered_offsets)
|
||||
gpiod_line_request_set_values_subset(request, 4, set_offsets, values);
|
||||
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 0), ==,
|
||||
GPIOD_LINE_VALUE_INACTIVE);
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 1), ==,
|
||||
GPIOD_LINE_VALUE_ACTIVE);
|
||||
G_GPIOSIM_VALUE_ACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 2), ==,
|
||||
GPIOD_LINE_VALUE_ACTIVE);
|
||||
G_GPIOSIM_VALUE_ACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 5), ==,
|
||||
GPIOD_LINE_VALUE_ACTIVE);
|
||||
G_GPIOSIM_VALUE_ACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 6), ==,
|
||||
GPIOD_LINE_VALUE_INACTIVE);
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 7), ==,
|
||||
GPIOD_LINE_VALUE_INACTIVE);
|
||||
G_GPIOSIM_VALUE_INACTIVE);
|
||||
}
|
||||
|
||||
GPIOD_TEST_CASE(request_with_bias_set_to_pull_up)
|
||||
@@ -578,7 +598,7 @@ GPIOD_TEST_CASE(request_with_bias_set_to_pull_up)
|
||||
request = gpiod_test_request_lines_or_fail(chip, NULL, line_cfg);
|
||||
|
||||
g_assert_cmpint(g_gpiosim_chip_get_value(sim, 3), ==,
|
||||
GPIOD_LINE_VALUE_ACTIVE);
|
||||
G_GPIOSIM_VALUE_ACTIVE);
|
||||
}
|
||||
|
||||
GPIOD_TEST_CASE(get_requested_offsets_less_and_more)
|
||||
|
||||
Reference in New Issue
Block a user