Commit graph

163 commits

Author SHA1 Message Date
Hadriel Kaplan
bd36fe1bcb Fix bug 6357: Lua all_field_infos() broken within tap/listener
The current API for Lua provides a global function
"all_field_infos()" which returns all the populated field_info nodes
in the current proto_tree.

By default all_field_infos() "works", in the literal sense: it returns
exactly the fields the previous dissectors of the packet have
populated at that instant of time.  But of course dissectors don't
populate all the applicable fields most of the time, because of the
TRY_TO_FAKE_THIS_ITEM optimization where they don't fill in things
that aren't needed at the time by a display, color, or tap's dfilter.

So this commit offers a way to force the dissectors to populate
all the applicable field_infos in the tree, by setting the proto_tree
to be visible.  Obviously that is going to impact performance, since
it basically bypasses the TRY_TO_FAKE_THIS_ITEM optimization; so the
patch only does this if the Lua script author told it to explicitly,
by adding an argument to Listener.new() and register_postdissector().

Change-Id: I11d3559fbe8c14fbadf1b51415a3701dc1200b7b
Reviewed-on: https://code.wireshark.org/review/286
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2014-02-25 21:06:50 +00:00
Hadriel Kaplan
860747e1e7 Adds some Lua helper functions: some commonly used functions, and to help troubleshooting Lua scripts
There are some common things people need to do, such as convert to/from hex or get
the raw binary string in a ByteArray/Tvb/TvbRange. These have been added, as well
as some tests for them in the testsuites. Also, functions have been added to allow
a script to get all the available tap types and filter fields, since they are
not exactly what one can see in the Wireshark gui.

Change-Id: I92e5e4eae713bb90d79b0c024eaa4e55b99cc96b
Reviewed-on: https://code.wireshark.org/review/249
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2014-02-25 21:06:21 +00:00
Pascal Quantin
58db464aff Remove executable bit from a few files
Change-Id: Ib9be221e3d325379c8b665ab73d976254bb23bb6
Reviewed-on: https://code.wireshark.org/review/342
Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2014-02-24 22:34:26 +00:00
Hadriel Kaplan
7f074364b6 Fix bug 9790: Lua: wslua allows duplicate field registration
As discussed in bug 3513 and 9709, one can register more than one new ProtoFields for
the same field name. Of course C-code can do that too, and does a LOT apparently, but
if they're not similar ftypes then things can get scrweed up in display filters.

So this change prevents duplicate field registration of dissimilar ftypes. The
similarity is based on the discussion on the mailing list, and the listing in
README.developer has been updated to refelect that as well.

Also, this change adds a testscript for Proto/ProtoFields.

Change-Id: I43bd323f785245941a21289647332a19adec2a9d
Reviewed-on: https://code.wireshark.org/review/285
Reviewed-by: Evan Huus <eapache@gmail.com>
2014-02-21 20:57:43 +00:00
Hadriel Kaplan
696353c129 Add test suite for verifying Lua global variables/tables of previous releases have not disappeared.
Several bugs have been introduced due to changing of perl scripts or #define names, such
that things exported into Lua have dissapeared or changed unintentionally. This commit
adds a test suite which compares the Lua global table with the ones from previous
releases (1.8 and 1.10), to verify nothing has gone missing. New items can be added, but
old ones cannot go away. The added script to verify these things, called 'verify_globals.lua',
also has the ability to display what's new - i.e., what was not in the olrder releases.

Lastly, this commit also fixes a bug: MENU_STAT_ENDPOINT became MENU_STAT_ENDPOINT_LIST
due to a change in the make-init-lua.pl perl script in this 1.11 release.

Change-Id: Iba143d1a436e706970635a5f8cc2b317955392bf
Reviewed-on: https://code.wireshark.org/review/284
Reviewed-by: Evan Huus <eapache@gmail.com>
Tested-by: Evan Huus <eapache@gmail.com>
2014-02-21 16:28:07 +00:00
Evan Huus
3f2be6dbe8 Revert "Add test suite for verifying Lua global variables/tables of previous releases have not disappeared."
This reverts commit 5b7f00178f.

Change-Id: Idf09d25270847970713b67d02bcd7cbc411a4e9c
Reviewed-on: https://code.wireshark.org/review/280
Reviewed-by: Evan Huus <eapache@gmail.com>
2014-02-21 02:16:51 +00:00
Hadriel Kaplan
5b7f00178f Add test suite for verifying Lua global variables/tables of previous releases have not disappeared.
Several bugs have been introduced due to changing of perl scripts or #define names, such
that things exported into Lua have dissapeared or changed unintentionally. This commit
adds a test suite which compares the Lua global table with the ones from previous
releases (1.8 and 1.10), to verify nothing has gone missing. New items can be added, but
old ones cannot go away. The added script to verify these things, called 'verify_globals.lua',
also has the ability to display what's new - i.e., what was not in the olrder releases.

Lastly, this commit also fixes a bug: MENU_STAT_ENDPOINT became MENU_STAT_ENDPOINT_LIST
due to a change in the make-init-lua.pl perl script in this 1.11 release.

Change-Id: Ic46172904256dc535b0fe4543237c07dddb3b9b5
Reviewed-on: https://code.wireshark.org/review/242
Reviewed-by: Evan Huus <eapache@gmail.com>
2014-02-21 02:06:18 +00:00
Evan Huus
b7985c57a4 Fix mode for lua test suite
Change-Id: If516472ca9c4a0ae84da22a0ecfc9449f0495cbb
Reviewed-on: https://code.wireshark.org/review/273
Reviewed-by: Evan Huus <eapache@gmail.com>
2014-02-20 22:16:47 +00:00
Hadriel Kaplan
fe769e7350 Add 4 more test scripts for Lua, and its own testsuite menu
This adds test scripts for verifying Pinfo, Address, Field, FieldInfo, NSTime
and Listener classes/functions.  It also moves Lua test scripts out of
unittests and into its own new testsuite.

Change-Id: I65c238fd459efb96db3f8f9145842cd038dea7c7
Reviewed-on: https://code.wireshark.org/review/270
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2014-02-20 18:42:13 +00:00
Hadriel Kaplan
c4f1777a97 Adds support for Lua struct library so one can pack/unpack binary structures
This is based on Roberto Ierusalimschy's struct library, along with additional
options based on Flemming Madsen's patch to the lua-users mailing list, and
some changes I made to support 64-bit integer packing/unpacking.  Details
are in the top comments for wslua_struct.c.  This also includes a test script.

Change-Id: Ifcd0116ba013d5c760927721c8d6e9f28965534b
Reviewed-on: https://code.wireshark.org/review/98
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2014-02-14 10:11:50 +00:00
Hadriel Kaplan
58fe488822 Lua: add ability for scripts loaded from command-line to be passed arguments
This change adds the ability to pass on to lua scripts loaded from the
command-line (tshark or wireshark) additional arguments supplied by the
command-line.  This will help us in our testsuites, but also might be
useful for user-created scripts.  The additional arguments are passed in
using the '-X' eXtension switch.

Change-Id: Ib94cdf1ffd194ca84692fee7816665e4ff95efbd
Reviewed-on: https://code.wireshark.org/review/156
Reviewed-by: Evan Huus <eapache@gmail.com>
Tested-by: Evan Huus <eapache@gmail.com>
2014-02-13 22:32:58 +00:00
Hadriel Kaplan
f5a1786ea1 Add test suite for Lua dissector-related functions
This isn't super-fancy, but it runs a simple protocol dissector and verifies the tshark output
matches what it expects.  Things like Proto, ProtoField, Field, Tvb, TvbRange, etc., are used
in an example dissector script - it dissects DNS... partially.  Enough to make sure things
aren't fundamentally broken.  This provides something to add on top of later as well.

Change-Id: Icf3c8e9534944bcf4c4f6150f02a9a43f999cd75
Reviewed-on: https://code.wireshark.org/review/126
Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Tested-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2014-02-09 19:55:43 +00:00
Hadriel Kaplan
4e8832bb0a Fix bug 9736 'Lua: new Int64/UInt64 functions don't prevent division by zero'
OK, in all fairness this does a bit more than just fix that bug. It also
adds a 'Int64()' and 'UInt64()' __call metamethods. I generally dislike
using __call metamethods, because they're often unintuitive (for example
the wireshark Field and FielInfo use this in a bizarre fashion).  But this
happens to be a perfect use for it, and very natural, imho.  Another change
is to make the metatables of classes visible to scripts. There was never
really a good reason not to make them visible, and they have to be visible
to do things like use __call on a plain table... not to mention I need them
to be visible to run test scripts verifying evrything is kosher.

I also updated the test suite to test for the div/mod by zero.

Change-Id: Ia4c594c8f59d4e799090716bd032ba2815df032f
Reviewed-on: https://code.wireshark.org/review/149
Reviewed-by: Evan Huus <eapache@gmail.com>
2014-02-09 16:04:36 +00:00
Evan Huus
1cd7828527 Various fixes to the Lua int64 code
- add casts to pacify certain buildbots
- skip test if lua isn't available

Change-Id: I614c05dca40cb848c87b361e4b3d3c4e94aafb9e
Reviewed-on: https://code.wireshark.org/review/97
Reviewed-by: Evan Huus <eapache@gmail.com>
Tested-by: Evan Huus <eapache@gmail.com>
2014-02-04 00:59:07 +00:00
Hadriel Kaplan
2e7f771a18 Adds support for Lua Int64 and UInt64 operators, functions, and general
usefulness, working around bug #9162 until Lua 5.3 is released.

The existing Int64 and UInt64 classes provide virtually no
usefullness, other than for creating a string of their value.  While
one could then write Lua code to convert the string to Lua numbers and
such, ultimately Lua has no native 64-bit integer support, making such
a task difficult to handle in Lua.  This change adds a host of
functions and operators to the existing Int64 (gint64) and UInt64
(guint64) classes, to enable true 64-bit integer support on par with
native Lua numbers.

A test script is also provided, which tests the functions/operators.

Change-Id: I4c5f8f5219b9a88198902283bd32ddf24c346bbe
Reviewed-on: https://code.wireshark.org/review/83
Tested-by: Evan Huus <eapache@gmail.com>
Reviewed-by: Evan Huus <eapache@gmail.com>
2014-02-04 00:37:46 +00:00
Jakub Zawadzki
2abbb53d67 Remove svn:executable attribute.
svn path=/trunk/; revision=54637
2014-01-07 22:55:03 +00:00
Jakub Zawadzki
1482ce4997 Revert part of r53874
svn path=/trunk/; revision=53944
2013-12-11 20:52:05 +00:00
Jakub Zawadzki
2b0797a361 It's DTLS failing not DVB_CI.
svn path=/trunk/; revision=53874
2013-12-08 22:16:22 +00:00
Jakub Zawadzki
23c9eb270f Try to check why test.sh fails.
svn path=/trunk/; revision=53871
2013-12-08 21:29:30 +00:00
Martin Kaiser
f38af18c2c add a decryption test for DVB-CI to the testsuite
svn path=/trunk/; revision=53830
2013-12-07 17:56:39 +00:00
Michael Mann
0e669d534d README update. Bug 9174 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9174)
From Peter Wu

svn path=/trunk/; revision=53671
2013-11-30 01:50:12 +00:00
Michael Mann
3635bea0a4 Add OID unit tests. Bug 9294 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9294)
From Ed Beroset

svn path=/trunk/; revision=52692
2013-10-19 18:52:13 +00:00
Evan Huus
4860e101c8 Slight simplification, inline a function only ever called once.
svn path=/trunk/; revision=52470
2013-10-09 17:24:16 +00:00
Evan Huus
7058b87833 From Ed Beroset via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9238
Add test for ANSI C12.22 decryption.

svn path=/trunk/; revision=52469
2013-10-09 17:21:30 +00:00
Evan Huus
2553de177d From Ed Beroset via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9245
Fix test suite so that it doesn't attempt to use color if ncurses is not
installed.  This came up when I attempted to use the test suite under Windows
with cygwin installed but not ncurses.  The result is not entirely broken but
the error messages saying that "tput is not a valid command" make the menus and
results difficult to read.

svn path=/trunk/; revision=52449
2013-10-08 15:09:59 +00:00
Evan Huus
0777f96c63 Another path and ordering tweak.
svn path=/trunk/; revision=52430
2013-10-06 23:39:16 +00:00
Evan Huus
087c885c66 More tweaking of test suite path variables, trying to make everything play
nicely on Windows and Linux both.

svn path=/trunk/; revision=52428
2013-10-06 23:29:59 +00:00
Evan Huus
13ae682c75 Fix nameres test suite cleanup after recent changes.
svn path=/trunk/; revision=52417
2013-10-06 20:30:12 +00:00
Evan Huus
62c230c7b1 From Peter Wu via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9174
Reorg more of the test variables, still separating source and test directories.
More minor fixes from me.

svn path=/trunk/; revision=52412
2013-10-06 18:57:01 +00:00
Evan Huus
81a0f156cd Try to fix unittest path magic on windows.
svn path=/trunk/; revision=52400
2013-10-06 14:15:38 +00:00
Evan Huus
e0cc11c92b From Peter Wu via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9174
Support running most tests out-of-tree. Use case is to have a source tree and
use a semi-unprivileged user to perform tests (to rule out interference).

From me:
- fix unit-test suite, it has to build the binaries it runs so it must
  more-or-less ignore the out-of-tree stuff
- fix name-res suite, just missing a path qualifier


svn path=/trunk/; revision=52397
2013-10-06 12:44:10 +00:00
Guy Harris
800b45f0a9 From Peter Wu: on systems other than Windows, skip the GUI tests if the
DISPLAY environment variable isn't set.

From me: note that this won't be the right thing to do on OS X if we
switch to a toolkit that doesn't use X11, and that this may or may not
be the right thing to do with toolkits using Wayland or Mir directly.

svn path=/trunk/; revision=52182
2013-09-22 21:51:05 +00:00
Evan Huus
c660aab935 Update the test suite for r51556. Use -Y in one place instead of -R where only
filtering is important. Use -2 and -R together in one place where the counting
functionality is important.

svn path=/trunk/; revision=51558
2013-08-28 02:30:50 +00:00
Gerald Combs
fe0b28463f Assume we always have GNU diff and that we can use --strip-trailing-cr.
svn path=/trunk/; revision=51496
2013-08-23 21:17:56 +00:00
Gerald Combs
a8c728533d Add a test for rawshark.
svn path=/trunk/; revision=51494
2013-08-23 18:54:22 +00:00
Gerald Combs
d5e30ea820 Fix the name resolution tests so that they run on Windows. Enable them
by default. Remove some unused code.

svn path=/trunk/; revision=49661
2013-05-31 22:32:14 +00:00
Gerald Combs
bfe9967fc8 nameres.hosts_file_handling shouldn't affect loading the profile "hosts"
file. That should be loaded no matter what if we have name resolution
enabled.

Add a name resolution test suite. Currently disabled until I can test it
on Windows.

svn path=/trunk/; revision=49657
2013-05-31 21:40:26 +00:00
Evan Huus
0a396007fe Use -Y instead of -R to filter tshark in decryption tests. We're not doing
2-pass analysis so -Y makes more sense and doesn't print deprecation warnings.

svn path=/trunk/; revision=48808
2013-04-10 14:27:24 +00:00
Evan Huus
51a1e7e91e Run the wmem unit tests with --verbose (provided by glib) so that if
one of the random bits fails we get the seed to reproduce with.

svn path=/trunk/; revision=48576
2013-03-27 02:35:32 +00:00
Evan Huus
4ba4e1df70 Add wmem unit test binary (still empty) to nmake build and to
the unit test part of the test suite. Once I know it's building and
running properly on the buildbots then I'll actually start writing tests.

svn path=/trunk/; revision=48517
2013-03-23 23:51:07 +00:00
Gerald Combs
6de14cd99b Disable software updates in a blind attempt to fix the recent test
failures.

svn path=/trunk/; revision=48391
2013-03-18 15:39:12 +00:00
Gerald Combs
87faeaead3 Minor updates.
svn path=/trunk/; revision=48268
2013-03-12 20:23:23 +00:00
Chris Maynard
ce6f1d2f9c Whitespace changes: Convert spaces to tabs. Add modelines.
svn path=/trunk/; revision=47975
2013-03-01 16:13:44 +00:00
Chris Maynard
53893a8a75 Convert spaces to tabs in capture_step_snapshot().
(Maybe this will make the XP buildbot happy so test.sh succeeds again?)

svn path=/trunk/; revision=47969
2013-03-01 06:20:41 +00:00
Jeff Morriss
f0b9d97f18 tshark now accepts -Q.
svn path=/trunk/; revision=46633
2012-12-20 14:36:06 +00:00
Jeff Morriss
349e61ce9e tshark now accepts -g.
svn path=/trunk/; revision=46519
2012-12-12 14:11:53 +00:00
Guy Harris
f3792fdf6b Make the error message for "we didn't get the error message we expected"
clearer - it's not as if we didn't expect to get an error message, we
just didn't expect to get *that particular* error message.

svn path=/trunk/; revision=46118
2012-11-21 19:04:21 +00:00
Guy Harris
7714813e0e For invalid interfaces, just check for "The capture session could not be
initiated", as we used to do.

svn path=/trunk/; revision=46117
2012-11-21 19:01:16 +00:00
Guy Harris
6871a7bb1c We aren't using pcap_create()/pcap_activate() to open interfaces on
Windows, as there isn't yet a WinPcap based on libpcap 1.0.0, so we
don't get PCAP_ERROR_NO_SUCH_DEVICE as a return value and thus don't
just report "No such device exists" for an invalid interface.

svn path=/trunk/; revision=46116
2012-11-21 18:59:27 +00:00
Guy Harris
fd62af338d If we're not on Windows, assume we don't have sufficient privileges to
open any capture devices, so "-i invalid_interface" will fail with a "no
permission" error rather than a "no such device" error.

svn path=/trunk/; revision=46115
2012-11-21 18:56:25 +00:00