diff options
-rw-r--r-- | tdecore/krfcdate.cpp | 10 | ||||
-rw-r--r-- | tdecore/tests/CMakeLists.txt | 42 | ||||
-rw-r--r-- | tdecore/tests/krfcdatetest.cpp | 6 |
3 files changed, 43 insertions, 15 deletions
diff --git a/tdecore/krfcdate.cpp b/tdecore/krfcdate.cpp index 327736b40..08691fd15 100644 --- a/tdecore/krfcdate.cpp +++ b/tdecore/krfcdate.cpp @@ -431,12 +431,16 @@ KRFCDate::parseDateISO8601( const TQString& input_ ) l = TQStringList::split(':', timeString); - if (l.size() < 3) + // If the 'T' separator was included, there must at least + // be the hour, if not then it is invalid. + if (l.size() < 1) return 0; hour = l[0].toUInt(); - min = l[1].toUInt(); - sec = l[2].toUInt(); + + // Minutes and seconds can be omitted. + min = (l.size() >= 2) ? l[1].toUInt() : 0; + sec = (l.size() >= 3) ? l[2].toUInt() : 0; time_t result = ymdhms_to_seconds(year, month, mday, hour, min, sec); diff --git a/tdecore/tests/CMakeLists.txt b/tdecore/tests/CMakeLists.txt index 6ccc215bd..cc6d45049 100644 --- a/tdecore/tests/CMakeLists.txt +++ b/tdecore/tests/CMakeLists.txt @@ -30,23 +30,41 @@ tde_add_library( tdeconfigtest SHARED AUTOMOC EXCLUDE_FROM_ALL ) -set( CHECKS - tdeconfigtestgui klocaletest kprocesstest ksimpleconfigtest kstandarddirstest - kuniqueapptest ktempfiletest krandomsequencetest kdebugtest - ksocktest kstringhandlertest kcmdlineargstest kapptest kmemtest - dcopkonqtest kipctest cplusplustest kiconloadertest kresolvertest - kmdcodectest knotifytest ksortablevaluelisttest krfcdatetest testqtargs - kprociotest kcharsetstest kcalendartest kmacroexpandertest kshelltest - kxerrorhandlertest startserviceby kglobaltest ktimezonestest +set( AUTOMATED_CHECKS + kcharsetstest kglobaltest kmacroexpandertest krfcdatetest + kstringhandlertest kurltest tdestdacceltest + + # cplusplustest # -- skip (doesn't error on errors) + # ksimpleconfigtest # -- skip (doesn't error on errors) + # ksortablevaluelist # -- skip (doesn't error on errors) + # ksocktest # -- skip due to DNS failure ) +# Tests that require some graphical interaction / confirmation. +set( MANUAL_CHECKS_GUI + kdebugtest klocaletest knotifytest kxerrorhandlertest + startserviceby tdeconfigtestgui kprocesstest testqtargs +) -foreach( _check ${CHECKS} ) - tde_add_check_executable( ${_check} AUTOMOC LINK tdeconfigtest-shared ) +# Tests that require some interaction using a terminal +set( MANUAL_CHECKS_TUI + dcopkonqtest kcalendartest kcmdlineargstest kiconloadertest + kipctest kmemtest krandomsequencetest kresolvertest + kmdcodectest kshelltest ktempfiletest ktimezonestest + kapptest kprociotest kstandarddirstest kuniqueapptest +) + +foreach( _check ${AUTOMATED_CHECKS} ) + tde_add_check_executable( ${_check} AUTOMOC LINK tdeconfigtest-shared TEST ) endforeach( ) -tde_add_check_executable( kurltest AUTOMOC LINK tdeconfigtest-shared TEST ) -tde_add_check_executable( tdestdacceltest AUTOMOC LINK tdeconfigtest-shared TEST ) +foreach( _check ${MANUAL_CHECKS_GUI}) + tde_add_check_executable( ${_check} AUTOMOC LINK tdeconfigtest-shared ) +endforeach() + +foreach( _check ${MANUAL_CHECKS_TUI}) + tde_add_check_executable( ${_check} AUTOMOC LINK tdeconfigtest-shared ) +endforeach() tde_add_check_executable( kidlservertest AUTOMOC SOURCES KIDLTest.cpp KIDLTest.skel LINK tdeconfigtest-shared ) diff --git a/tdecore/tests/krfcdatetest.cpp b/tdecore/tests/krfcdatetest.cpp index 94358a8f1..c67c5a4e2 100644 --- a/tdecore/tests/krfcdatetest.cpp +++ b/tdecore/tests/krfcdatetest.cpp @@ -59,6 +59,12 @@ int main(int argc, char *argv[]) a = KRFCDate::parseDateISO8601("1994-01-01"); check( "1994-01-01", a, b ); + a = KRFCDate::parseDateISO8601("1994-01-01T12"); + check("1994-01-01T12", a, b); + + a = KRFCDate::parseDateISO8601("1994-01-01T12:00"); + check("1994-01-01T12:00", a, b); + b = 0; // pass RFC date to ISO parser |