Commit Graph

568 Commits (b822d3aed8d357aa96e70289c73b598ce4d6d291)

Author SHA1 Message Date
nirenjan 1d5e1073ce Update translation templates 2020-07-13 18:05:22 -07:00
nirenjan 22d4218189
Merge pull request #22 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2020-07-13 14:19:50 -07:00
The Gitter Badger 5108e34ce8 Add Gitter badge 2020-07-13 21:16:53 +00:00
nirenjan afb442d9c4 Add device info to x52evtest output 2020-07-12 02:13:03 -07:00
nirenjan f6136fcef0 Add device info API 2020-07-12 00:08:33 -07:00
nirenjan c8ad37b3f7 Save USB device strings when opening HID device
This change saves the manufacturer, product and serial number strings in
a multibyte format, so that it can be used by the clients of the library
to print details about the connected device. This also ensures that
those multibyte strings are freed when closing the device.
2020-07-11 17:13:27 -07:00
nirenjan 81cb7367f8 Fix test builds on OSX 2020-07-11 11:31:09 -07:00
nirenjan b766fb75fa Make timeval printing portable 2020-07-11 10:46:04 -07:00
nirenjan 597c73ab35 Enable i18n for x52evtest 2020-07-11 00:21:28 -07:00
nirenjan 46bd78bdd9 Add event test utility
This change is a wrapper around libx52io to print the raw events coming
from the X52 device.
2020-07-11 00:15:14 -07:00
nirenjan 4982071764 Map hat to axis 2020-07-11 00:09:39 -07:00
nirenjan 62894dea43 Add string representations and associated i18n 2020-07-10 18:01:53 -07:00
nirenjan a0b7769dab Add HATX and HATY axis values 2020-07-10 17:26:23 -07:00
nirenjan 2c40785c2b Add test suite for parser - WIP 2020-07-10 02:35:53 -07:00
nirenjan 4bd3ae69fe Fix builds on OSX 2020-07-09 16:21:40 -07:00
nirenjan 16cb1e4698 Implement libx52io read APIs 2020-07-09 15:12:55 -07:00
nirenjan 9ab3cce73e Fix report format to correctly handle mouse stick
Prior to this change, the report parser treated the mouse stick axes in
the reverse order of the USB HID report descriptor.

This change fixes that issue and also updates the specification
documentation to reflect it correctly.
2020-07-09 02:44:31 -07:00
nirenjan 4f18aa3dc8 Add tests for axis API 2020-07-09 01:53:54 -07:00
nirenjan cf6c458fae Update dependencies in INSTALL.md
[skip ci]
2020-07-08 17:39:29 -07:00
nirenjan 63a2f465d2 Replace hard-coded values with #define's 2020-07-08 17:35:17 -07:00
nirenjan 9d3acfd35a Add report parser implementation 2020-07-08 17:28:06 -07:00
nirenjan aebd5e14f9 Add axis API implementation 2020-07-08 16:43:20 -07:00
nirenjan 329274e6c9 Add initial version of libx52io 2020-07-08 00:33:03 -07:00
nirenjan bcc90ac24e Add HIDAPI to build dependencies 2020-07-05 16:19:04 -07:00
nirenjan 1cbad472df Revert "Save PID in libx52_device structure"
This reverts commit f963991161.

The updated design uses hidapi to create a separate connection to the
X52 device, and libx52 is limited to only dealing with the vendor
specific commands.
2020-07-05 16:10:23 -07:00
nirenjan f963991161 Save PID in libx52_device structure
This will support a parser interface which will parse the HID report
from the X52, but given that the device has different PIDs, the parser
will need to behave differently depending on the PID.
2020-07-04 23:29:25 -07:00
nirenjan 945ddc63a3 Update for release 0.2.1 2020-06-28 13:31:25 -07:00
nirenjan 729bbcaf90 Rename CLI tests from libx52 to x52cli 2020-06-28 12:01:14 -07:00
nirenjan 4311c020a0 Merge branch 'cmocka-tests' 2020-06-28 11:49:39 -07:00
nirenjan c40847b833 Add clock tests to verify PDT/PST/UTC 2020-06-28 11:32:19 -07:00
nirenjan 3981b873e0 Add date format tests 2020-06-28 08:57:23 -07:00
nirenjan 87ad48a37f Cleanup generated test formatting 2020-06-28 08:57:01 -07:00
nirenjan 7b423f4ea0 Update libx52_set_led_state to use check_feature 2020-06-28 08:35:14 -07:00
nirenjan efd984ef63 Parse and add setup_hook and fields
This change allows updates to the dev structure for individual test
cases. This defines the "setup_hook" array, and "fields" map, at both
the test group level and at the individual test case level, with the
ones at the test case level overriding any parent level fields and/or
hooks.

The primary use case for this is to add new test definitions that would
not be setup correctly by the default infrastructure, such as testing
the LED function for the non-Pro X52, or setting up clock tests for
local timezone, etc.
2020-06-28 08:24:49 -07:00
nirenjan 108b7e2522 Add cmocka to OSX build 2020-06-27 22:20:40 -07:00
nirenjan 681a8e8aa1 Change libx52 mock tests to use preprocessor overrides
Prior to this change, libx52 tests needed a linker that supported the
--wrap argument. This is not available on OSX, and therefore, we had to
disable the unit tests on non-Linux systems.

Since we needed to rebuild the libx52 library anyway for the test, it is
simpler to just define libusb_control_transfer to point to our mock
function. This allows us to verify libx52 on all supported platforms.
2020-06-27 22:04:56 -07:00
nirenjan 57cda79320 Add specifications for Saitek X52
[skip ci]
2020-06-21 08:49:14 -07:00
nirenjan 8388f3308e Reword configure warning on non-Linux hosts 2020-06-21 08:48:44 -07:00
nirenjan c4696f6055 Add clock time tests 2020-06-17 18:52:07 -07:00
nirenjan 34b023b1fa Add cmocka to Travis CI builds on Ubuntu 2020-06-17 16:18:06 -07:00
nirenjan e9167b4c20 Disable cmocka tests on non-Linux hosts 2020-06-17 16:00:25 -07:00
nirenjan 3afe999fe8 Ensure generated sources are not packaged in distribution 2020-06-17 15:12:01 -07:00
nirenjan 9f37cde784 Add generated tests to verify libx52 functionality
This change adds a suite of tests in JSON format using a Python script
to generate the cmocka based test program. Because we need to wrap some
of libusb functionality, we need to rebuild and relink the libx52
sources with the -Wl,--wrap option.
2020-06-17 15:06:19 -07:00
nirenjan bf9b1bdfbd Remove manual tests in favor of cmocka
Prior to this change, we needed to add a manual override function to
mock the vendor command. Given that cmocka has built-in support for
mocking functions, it's better to use that instead.

This change simply removes the manual override and any tests that rely
on it.
2020-06-16 17:33:15 -07:00
nirenjan f0ed2f39e3 Set minimum version of Python to 3.5
On Xenial, the version of Python 3 is 3.5. Restricting the version to
3.6 or newer causes the Travis CI build to break on Xenial.
2020-06-16 15:39:31 -07:00
nirenjan c4acd0ce49 Update makefiles to use Python 3
Prior to this change, generation of the character lookup table could use
Python 2 or Python 3, depending on what the first instance of python in
the PATH pointed to.  On most systems, python is a symbolic link to
python2.7. However, given that Python 2 is EOL, it makes sense to switch
the code to use Python 3 now, rather than later.

This change updates the requirements to use Python 3.6 or later, and
updates the Makefile to invoke the script with the detected python
binary, rather than relying on the shebang to use the system Python.
2020-06-16 15:17:53 -07:00
nirenjan 3eaee7b8f4 Reduce duplicate code in libx52 test code 2020-06-14 00:07:40 -07:00
nirenjan e1915bc734 Update paths of scripts to allow building on BSD
Prior to this change, the assumption in all shell and Python scripts was
that the Bash interpreter would always be available at `/bin/bash`, and
Python would always be available at `/usr/bin/python`. However, on a VM
running FreeBSD, installing bash and python using the pkg command
installs them under /usr/local/bin.

This change updates the paths to use /usr/bin/env in the shebang. While
this is not a standard path either, it is more likely to be available at
this location.

This change also updates the find command in common_infra.sh to use
`-perm -+x` in lieu of `-executable`, which is not a condition defined
by POSIX. This allows running the tests on BSD.
2020-06-12 23:26:51 -07:00
nirenjan 21a5da3c70 Update POT with new source line numbers 2020-06-12 23:16:33 -07:00
nirenjan f754533a67 Update gettext.h to fix warnings when compiling with --disable-nls
With the introduction of AX_COMPILE_FLAGS in configure.ac, building with
--disable-nls in configuration raises additional warnings.

This change updates gettext.h in order to address those warnings.
2020-06-12 22:05:28 -07:00