You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stdcxx.apache.org by fa...@apache.org on 2006/10/19 16:15:57 UTC
svn commit: r465641 - in /incubator/stdcxx/trunk/tests: include/driver.h
src/driver.cpp src/opt_trace.cpp src/opt_trace.h
Author: faridz
Date: Thu Oct 19 07:15:56 2006
New Revision: 465641
URL: http://svn.apache.org/viewvc?view=rev&rev=465641
Log:
2006-10-19 Farid Zaripov <fa...@kyiv.vdiweb.com>
* driver.h (rw_enable): New function to enable/disable
specified diagnostics
* driver.cpp (rw_enable): New function to enable/disable
specified diagnostics
(_rw_vdiag): Added checking whether the diagnostic
is enabled or disabled
* opt_trace.h: Added declaration of the _rw_diag_ignore variable
* opt_trace.cpp: Added definition of the _rw_diag_ignore variable
Modified:
incubator/stdcxx/trunk/tests/include/driver.h
incubator/stdcxx/trunk/tests/src/driver.cpp
incubator/stdcxx/trunk/tests/src/opt_trace.cpp
incubator/stdcxx/trunk/tests/src/opt_trace.h
Modified: incubator/stdcxx/trunk/tests/include/driver.h
URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/tests/include/driver.h?view=diff&rev=465641&r1=465640&r2=465641
==============================================================================
--- incubator/stdcxx/trunk/tests/include/driver.h (original)
+++ incubator/stdcxx/trunk/tests/include/driver.h Thu Oct 19 07:15:56 2006
@@ -6,16 +6,23 @@
*
***************************************************************************
*
- * Copyright (c) 1994-2005 Quovadx, Inc., acting through its Rogue Wave
- * Software division. Licensed under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License. You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0. Unless required by
- * applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
- * CONDITIONS OF ANY KIND, either express or implied. See the License
- * for the specific language governing permissions and limitations under
- * the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ *
+ * Copyright 1994-2005 Rogue Wave Software.
*
**************************************************************************/
@@ -150,5 +157,15 @@
*/
_TEST_EXPORT int
rw_info (int, const char*, int, const char*, ...);
+
+/**
+* Enable/disable the specified diagnostics
+*
+* Example:
+* rw_enable (rw_error, false); // disable all rw_error diagnostics
+* rw_enable (rw_error); // enable all rw_error diagnostics
+*/
+_TEST_EXPORT void
+rw_enable (int (*) (int, const char*, int, const char*, ...), bool = true);
#endif // RW_DRIVER_H_INCLUDED
Modified: incubator/stdcxx/trunk/tests/src/driver.cpp
URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/tests/src/driver.cpp?view=diff&rev=465641&r1=465640&r2=465641
==============================================================================
--- incubator/stdcxx/trunk/tests/src/driver.cpp (original)
+++ incubator/stdcxx/trunk/tests/src/driver.cpp Thu Oct 19 07:15:56 2006
@@ -6,23 +6,24 @@
*
************************************************************************
*
- * Copyright 2005-2006 The Apache Software Foundation or its licensors,
- * as applicable.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at
*
- * Copyright 2005-2006 Rogue Wave Software.
+ * http://www.apache.org/licenses/LICENSE-2.0
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * permissions and limitations under the License.
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * Copyright 2005-2006 Rogue Wave Software.
*
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
**************************************************************************/
// expand _TEST_EXPORT macros
@@ -1378,6 +1379,10 @@
_rw_vdiag (diag_t diag, int severity, const char *file, int line,
const char *fmt, va_list va)
{
+ // ignore this diagnostic if it's present in _rw_diag_ignore
+ if (_rw_diag_ignore & (1 << diag))
+ return;
+
CHECK_INIT (true, "_rw_vdiag()");
// check if the diagnostic is expected
@@ -1534,4 +1539,35 @@
va_end (va);
return success;
+}
+
+/************************************************************************/
+
+_TEST_EXPORT void
+rw_enable (int (*fun) (int, const char*, int, const char*, ...), bool enable)
+{
+ diag_t diag;
+
+ if (&rw_fatal == fun)
+ diag = diag_fatal;
+ else if (&rw_error == fun)
+ diag = diag_error;
+ else if (&rw_assert == fun)
+ diag = diag_assert;
+ else if (&rw_warn == fun)
+ diag = diag_warn;
+ else if (&rw_note == fun)
+ diag = diag_note;
+ else if (&rw_info == fun)
+ diag = diag_info;
+ else {
+ RW_ASSERT (!"Invalid function in rw_enable");
+ return;
+ }
+
+ // if (enable)
+ // _rw_diag_ignore &= ~(1 << diag);
+ // else
+ // _rw_diag_ignore |= 1 << diag;
+ _rw_diag_ignore ^= ((enable - 1) ^ _rw_diag_ignore) & (1 << diag);
}
Modified: incubator/stdcxx/trunk/tests/src/opt_trace.cpp
URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/tests/src/opt_trace.cpp?view=diff&rev=465641&r1=465640&r2=465641
==============================================================================
--- incubator/stdcxx/trunk/tests/src/opt_trace.cpp (original)
+++ incubator/stdcxx/trunk/tests/src/opt_trace.cpp Thu Oct 19 07:15:56 2006
@@ -2,20 +2,27 @@
*
* opt_trace.cpp - definitions of tracing option handlers
*
- * $Id:$
+ * $Id$
*
************************************************************************
*
- * Copyright (c) 1994-2005 Quovadx, Inc., acting through its Rogue Wave
- * Software division. Licensed under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License. You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0. Unless required by
- * applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
- * CONDITIONS OF ANY KIND, either express or implied. See the License
- * for the specific language governing permissions and limitations under
- * the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ *
+ * Copyright 1994-2005 Rogue Wave Software.
*
**************************************************************************/
@@ -32,6 +39,9 @@
// masked diagnostics (those that shouldn't be issued)
int _rw_diag_mask = 1 << diag_trace;
+
+// bitmap of diagnostics to ignore
+int _rw_diag_ignore = 0;
int
Modified: incubator/stdcxx/trunk/tests/src/opt_trace.h
URL: http://svn.apache.org/viewvc/incubator/stdcxx/trunk/tests/src/opt_trace.h?view=diff&rev=465641&r1=465640&r2=465641
==============================================================================
--- incubator/stdcxx/trunk/tests/src/opt_trace.h (original)
+++ incubator/stdcxx/trunk/tests/src/opt_trace.h Thu Oct 19 07:15:56 2006
@@ -2,20 +2,27 @@
*
* opt_trace.h - declarations of tracing option handlers
*
- * $Id:$
+ * $Id$
*
************************************************************************
*
- * Copyright (c) 1994-2005 Quovadx, Inc., acting through its Rogue Wave
- * Software division. Licensed under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance with the
- * License. You may obtain a copy of the License at
- * http://www.apache.org/licenses/LICENSE-2.0. Unless required by
- * applicable law or agreed to in writing, software distributed under
- * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
- * CONDITIONS OF ANY KIND, either express or implied. See the License
- * for the specific language governing permissions and limitations under
- * the License.
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you under the Apache
+ * License, Version 2.0 (the "License"); you may not use this file
+ * except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied. See the License for the specific language governing
+ * permissions and limitations under the License.
+ *
+ * Copyright 1994-2005 Rogue Wave Software.
*
**************************************************************************/
@@ -29,6 +36,10 @@
// diagnostics enabled by defaults
extern int
_rw_diag_mask;
+
+// ignored diagnostics bitmap
+extern int
+_rw_diag_ignore;
int