Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Travis spellcheck and cppunit with valgrind #363

Merged
merged 32 commits into from
Jan 24, 2017

Conversation

jimklimov
Copy link
Member

@jimklimov jimklimov commented Jan 19, 2017

For issue #338

This enables Travis tests for cppunit (to whatever extent was available in codebase, which was not much), and fixes spellchecking to do its work (and also fixes a number of discovered spelling errors).

Also adds configure capability to find and optionally enable valgrind, but currently does not go beyond that (e.g. enable debug builds and/or run any special checks under valgrind... not sure how/what to test here - start every binary to display help text and see that nothing went wrong? the commented-away code for travis enablement was slightly improved but is still commented away). This piece is ported from DMF branch which does have a target to make a custom build of everything it needed to test that the parser does not leak.

UPDATE: For lack of better ideas at the moment, added a distcheck taryet with valgrind support that runs the cppunit test programs with leak inspection. This approach can be replicated to add other types of 'make check' as they come.

@jimklimov
Copy link
Member Author

Ok, so after some debugging to drop later - the mismatch is in aspell shipped dictionaries on travis hosts == more exceptions needed in nut.dict.

@aquette
Copy link
Member

aquette commented Jan 19, 2017 via email

@jimklimov
Copy link
Member Author

jimklimov commented Jan 20, 2017 via email

jimklimov and others added 14 commits January 20, 2017 13:27
* spellcheck targets should fail the build not only if the last document failed the test
* make sure to use custom spellcheck dictionary from NUT source tree; revise erroring out if automatic aspell finds issues
* also set LC_ALL=C for aspell
* revised spellcheck failure message to suggest next steps for the human
* comment the spellcheck test; use more portable shell test (instead of bracket); do not fail on empty aspell outputs
…and use it from Travis for now

* docs/Makefile.am : also report if the build succeeds despite spellcheck errors (due to this setting)
… targets: spellcheck spellcheck-interactive doc
…mention the recently added option to skip building docs
…) and added link to Travis CI dashboard for NUT branches
…s CI; add some developer names to the dictionary
@jimklimov jimklimov force-pushed the travis-spellcheck branch 2 times, most recently from 6d9081e to 9069a0f Compare January 20, 2017 13:49
@jimklimov jimklimov changed the title (WIP) Travis spellcheck and cppunit Travis spellcheck and cppunit Jan 20, 2017
@jimklimov
Copy link
Member Author

Seems finally fixed for "UTF8" input and dicts (just one Pawel with polish L got missed by aspell and is now seen as Pawe with a skipped next character that is otherwise deemed invalid in a word), so un-WIPing the PR.

@jimklimov jimklimov requested review from clepple and aquette January 20, 2017 15:54
@jimklimov
Copy link
Member Author

@aquette : PS: I am not quite a vodka guy, but I get the drift ;)
Kudos to you too for getting a solid foundation (and hints) without which I wouldn't get so far with the spells.

@jimklimov jimklimov changed the title Travis spellcheck and cppunit Travis spellcheck and cppunit with valgrind Jan 20, 2017
Copy link
Member

@aquette aquette left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • you can work on such features in nut repos. branch (would make it easier to add commits on my side, such as the below)
  • worths to propagate the spellcheck to manpages, in docs/man/Makefile.am:
    ** create SRC_ALL_PAGES =
    $(SRC_CONF_PAGES)
    $(SRC_CLIENT_PAGES)
    $(SRC_TOOL_PAGES)
    $(SRC_CGI_PAGES)
    $(SRC_DEV_PAGES)
    $(SRC_SERISPELLCHECK_SRCAL_PAGES)
    $(SRC_SNMP_PAGES)
    $(SRC_USB_LIBUSB_PAGES)
    $(SRC_NETXML_PAGES)
    $(SRC_POWERMAN_PAGES)
    $(SRC_IPMIPSU_PAGES)
    $(SRC_MACOSX_PAGES)
    $(SRC_LINUX_I2C_PAGES)
    ** mod EXTRA_DIST to use SRC_ALL_PAGES
    ** duplicate docs/Makefile.am spellcheck* and use SRC_ALL_PAGES as SPELLCHECK_SRC

# See also http://aspell.net/man-html/Through-A-Pipe.html
# TODO: Is "grep -a" or "grep -b" (treat input as ascii/bin) portable enough?
# Is "egrep == grep -E" always valid? (maybe all a job for configure.ac)
# TODO: Define a custom language in-repo or during build, that is english
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this and the below still valid?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Custom language - probably not anymore, at least not until we hit a platform with sufficiently different or old aspell.

Concerns of portable egrep and -a/-b flags - these may still be valid (buildbots might show what works where). If the issues do pop up, the flag may be removed at expense of warnings that unexpected binary input was detected - and those might need to be grepped out so as to not pollute logged reports and/or interpretation of aspell's "$OUT".

@@ -125,17 +125,75 @@ SPELLCHECK_SRC = $(ALL_TXT_SRC) ../README ../INSTALL.nut ../UPGRADING ../NEWS \
../TODO ../scripts/ufw/README ../scripts/augeas/README ../lib/README \
../tools/nut-scanner/README
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add daisychain.txt to ALL_TXT_SRC since it's missing

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@aquette
Copy link
Member

aquette commented Jan 21, 2017

@jimklimov great work! and thx for the thank ;)
on the valgrind, we can improve that when integrating QRT (see #3) and use it (similar approach, with dummy-ups+upsd+upsmon+upsc/rw) to check for leaks on these. Nearly impossible for the drivers... at least for now.
As for the vodka/beer, you get the idea ;) can also be lemonade or fruit juice ;-p

@jimklimov
Copy link
Member Author

Good point on manpages - done. No copy-paste involved ;)

@jimklimov
Copy link
Member Author

For reviewers : so far my fantasy is exhausted as far as "small initial steps" go, and this PR looks solid enough for merging, as a foundation for possible (or inevitable) improvements. I'd like to avoid it growing into a monster like DMF PRs that take months to review, and to begin bringing benefits to subsequent codebase improvements ASAP ;)

@aquette
Copy link
Member

aquette commented Jan 24, 2017

@jimklimov thx, you've addressed all the points from my review. Good to go, and as you said, this is already improving the situation, along with being a solid foundation to build upon.
Now merging / closing the PR

@aquette aquette merged commit 53fa518 into networkupstools:master Jan 24, 2017
@jimklimov jimklimov deleted the travis-spellcheck branch May 26, 2017 07:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants