Commit Graph

35 Commits

Author SHA1 Message Date
Jared Johnson
5f6485e84f Change fake_{config,hook} to mock_{config,hook}
'mock' is more accurate and recognizable
2015-02-12 16:19:44 -06:00
Jared Johnson
b3f8ce6b07 Tests for error logging in run_continuation() 2015-02-03 16:44:06 -06:00
Jared Johnson
3bf1a7f48c Better handling of testing temp files
Rather than creating and ignoring a bunch of random files, create files in
t/tmp, ignored in .gitignore and cleaned up with 'make clean'
2015-01-27 14:41:15 -06:00
Jared Johnson
a7fee58aad More explicit explanations 2014-12-24 18:06:22 -06:00
Jared Johnson
0204fb0f18 Add some comments on uses for fake_{hook,config} 2014-12-18 14:01:32 -06:00
Jared Johnson
7f357af1c2 Move hook testing stuff to Test::Qpsmtpd
This makes it more available to plugins outside of t/plugin_tests/
2014-12-18 13:32:58 -06:00
Jared Johnson
46d26848a9 Generalized method for test hooks 2014-12-18 13:32:57 -06:00
Jared Johnson
7d33c42d35 Less obtrusive addition of test hooks 2014-12-18 13:32:57 -06:00
Jared Johnson
0d5ec185a8 Make fake_config() available to all plugin tests 2014-12-11 15:33:34 -06:00
Matt Simerson
92648b7198 allow testing a single plugin 2014-11-04 12:49:15 -08:00
Jonathan Hall
897a1fd8aa Remove a ton of 'return ()', and a few other minor readability tweaks. 2014-09-17 20:28:51 -05:00
Matt Simerson
1e82ae1bc7 async removed
1. the known users of async don't upgrade
2. async becomes a win when concurrent connections exceed a few hundred simultaneous
3. anyone that needs async should be looking at Haraka instead
4. the perl async dependencies aren't maintained
2014-09-17 11:38:40 -07:00
Matt Simerson
a5420149bd remove test counters from plugin tests
replace with done_testing(), which provides the same "make sure to kvetch if tests fail to run" without requiring humans to do the bookkeeping.
2014-09-17 00:11:32 -07:00
Matt Simerson
ebdb25a4bd extracted config*() from Qpsmtpd.pm -> Config.pm
* includes full test converage for Qpsmtpd::Config
    * folded t/config.t into t/qpsmtpd-config.t
* includes additional tests for Qpsmtpd
    * folded t/tempstuff into t/qpsmtpd.t
* PBP adjustments here and there
* other tweaks to handle test warnings
2014-09-15 23:41:31 -07:00
Matt Simerson
5b06929e95 find . -name '*.pm' -exec perltidy -b {} \; 2013-08-05 15:05:15 -07:00
Matt Simerson
7d19bc6d5e restore validate_password test
not sure how/why that got removed, but it wasn't intentional
2013-08-05 12:38:39 -07:00
Matt Simerson
b7cb9eaf3d auth: adding tests (should have attached with a previous commit) 2013-08-05 12:38:38 -07:00
Matt Simerson
9c1e62371b added new t/config directory, with developer tests
run when $ENV{QPSMTPD_DEVELOPER} is set

plugins file is same as in config.sample, but with more stuff enabled
2012-06-04 03:34:48 -04:00
Matt Simerson
85982d00f8 restore validate_password test
not sure how/why that got removed, but it wasn't intentional
2012-06-04 03:34:47 -04:00
Matt Simerson
9e70da4951 auth: adding tests (should have attached with a previous commit) 2012-06-04 03:34:47 -04:00
Matt Simerson
be28372dca permit tests for async and ident plugins to work 2012-05-20 23:39:20 -07:00
Matt Simerson
ae3fe2e4d5 cleanups for Auth::validate_password commit
one for testing to work again
and one to remove MD5 dependency in Plugin.pm
2012-05-20 23:37:16 -07:00
Matt Simerson
35e1ce9883 consolidate auth logic into Qpsmtpd::Auth
These 3 auth plugins all have a data store they fetch the reference
password or hash from. They then match the attemped password or hash
against the reference. This consolidates the latter portion (validating
the password/hash) into Auth.pm.

* less duplicated code in the plugins.
* Pass validation consistently handled for these 3 plugins.
* less work to create new auth plugins

Also caches the CRAM-MD5 ticket. It could also cache user/pass info if
this was desirable.
2012-05-20 23:37:06 -07:00
Matt Simerson
3afcc92150 whitespace, copyright bump, simplify logic 2012-04-29 00:30:06 -07:00
Matt Simerson
5f81fd7925 remove vestiges of a bygone RCS 2010-05-09 23:22:13 -07:00
Ask Bjørn Hansen
43924427fc we don't call the regular logging infrastructure from the Test module,
so trace level doesn't get set to the default anywhere.  Set it to a value
here to avoid the uninitialized warnings.


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@849 958fd67b-6ff1-0310-b445-bb7760255be9
2008-02-14 18:57:27 +00:00
Matt Sergeant
ef7d885929 Allow plugin tests to be in subdir (as with plugins).
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@737 958fd67b-6ff1-0310-b445-bb7760255be9
2007-05-17 22:02:32 +00:00
Matt Sergeant
be67f02dd8 Fix tests (idea from Guy Hulbert, with tweak from me).
git-svn-id: https://svn.perl.org/qpsmtpd/branches/0.3x@706 958fd67b-6ff1-0310-b445-bb7760255be9
2007-01-11 23:52:51 +00:00
John Peacock
662003437d * qpsmtpd-forkserver
Create a single Qpsmtpd::TcpServer object in the parent process and
     then rely on fork to let each child have it's own copy
     
 *   lib/Qpsmtpd/Plugin.pm
     Add new pre-connection and post-connection hooks
     
 *   README.plugins
     Document the above new hooks

 *   lib/Qpsmtpd.pm
     No longer have local value for trace_level() the first time through, which 
     was masking the global value (due to stupid search/replace error).
     Don't call log() from trace_level() since it is only ever called from
     within the varlog() sub when no logging plugin is registered.

 *   plugins/dnsbl
     Config line option to use DENY_DISCONNECT instead of DENY (since any IP
     on a blacklist should not have a chance to send anything for now).
     Add POD to document the new disconnect behavior

 *   lib/Qpsmtpd.pm
     Compatibility changes so test files continue to work
 
 *   t/Test/Qpsmtpd.pm
     Compatibility sub for core subs which call varlog() directly


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@428 958fd67b-6ff1-0310-b445-bb7760255be9
2005-05-25 20:07:58 +00:00
Ask Bjørn Hansen
8c390be6be moved config to config.sample
minor test cleanups

updated Changes file in preperation for a release


git-svn-id: https://svn.perl.org/qpsmtpd/trunk@336 958fd67b-6ff1-0310-b445-bb7760255be9
2004-11-09 15:25:52 +00:00
Matt Sergeant
069c5a6835 Apparently diag() doesn't do what I thought it did!
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@315 958fd67b-6ff1-0310-b445-bb7760255be9
2004-09-08 21:53:29 +00:00
Matt Sergeant
d811d6dbdd A real test (and a flaw in the harness fixed)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@314 958fd67b-6ff1-0310-b445-bb7760255be9
2004-09-08 21:48:27 +00:00
Matt Sergeant
9224e436bb Plugin testing framework.
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@313 958fd67b-6ff1-0310-b445-bb7760255be9
2004-09-08 16:26:33 +00:00
Matt Sergeant
325bb77713 command is in $command not $_
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@299 958fd67b-6ff1-0310-b445-bb7760255be9
2004-09-05 16:25:02 +00:00
Ask Bjørn Hansen
7889fa6990 add basic tests (mail from and helo and ehlo)
git-svn-id: https://svn.perl.org/qpsmtpd/trunk@264 958fd67b-6ff1-0310-b445-bb7760255be9
2004-07-16 02:22:27 +00:00