W3C home > Mailing lists > Public > public-ws-desc-eds@w3.org > January 2007

2002/ws/desc/test-suite/results-messages/LocationTemplate-1G log-LocationTemplate1G-canon-canon-output.xml,1.2,1.3 log-LocationTemplate1G-canon-canon-results.html,1.2,1.3

From: Jonathan Marsh via cvs-syncmail <cvsmail@w3.org>
Date: Fri, 12 Jan 2007 04:36:27 +0000
To: public-ws-desc-eds@w3.org
Message-Id: <E1H5E9T-0007g5-86@lionel-hutz.w3.org>

Update of /sources/public/2002/ws/desc/test-suite/results-messages/LocationTemplate-1G
In directory hutz:/tmp/cvs-serv25871/test-suite/results-messages/LocationTemplate-1G

Modified Files:
	log-LocationTemplate1G-canon-canon-output.xml 
	log-LocationTemplate1G-canon-canon-results.html 
Log Message:
Added WSO2 results.
Fixed columnar display of multiple vendor's results.

Index: log-LocationTemplate1G-canon-canon-results.html
===================================================================
RCS file: /sources/public/2002/ws/desc/test-suite/results-messages/LocationTemplate-1G/log-LocationTemplate1G-canon-canon-results.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -C 2 -d -r1.2 -r1.3
*** log-LocationTemplate1G-canon-canon-results.html	10 Jan 2007 21:42:38 -0000	1.2
--- log-LocationTemplate1G-canon-canon-results.html	12 Jan 2007 04:36:25 -0000	1.3
***************
*** 14,19 ****
  <body>
  <h1>Message exchange test results</h1>
! <p>Generated January 10 2007,
! 	    1018</p>
  <h2>From
  	      Unknown
--- 14,19 ----
  <body>
  <h1>Message exchange test results</h1>
! <p>Generated January 11 2007,
! 	    2025</p>
  <h2>From
  	      Unknown

Index: log-LocationTemplate1G-canon-canon-output.xml
===================================================================
RCS file: /sources/public/2002/ws/desc/test-suite/results-messages/LocationTemplate-1G/log-LocationTemplate1G-canon-canon-output.xml,v
retrieving revision 1.2
retrieving revision 1.3
diff -C 2 -d -r1.2 -r1.3
*** log-LocationTemplate1G-canon-canon-output.xml	10 Jan 2007 21:42:38 -0000	1.2
--- log-LocationTemplate1G-canon-canon-output.xml	12 Jan 2007 04:36:25 -0000	1.3
***************
*** 1,2 ****
  <?xml version="1.0" encoding="UTF-8"?>
! <resultSets xmlns:a="http://www.w3.org/2006/11/desc/assertions" xmlns:m="http://www.w3.org/2006/11/desc/messages" xmlns:l="http://www.w3.org/2002/ws/desc/logs/" xmlns:module="http://www.w3.org/2002/ws/desc/6/10/test-module" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"><head><messages>14</messages><expectedMessages>14</expectedMessages><tests>63</tests><tstamp>2007-01-10T16:13:48.712Z</tstamp><generated>January 10 2007</generated><from>Unknown</from><to>Apache/2.0.54 (Win32)</to></head><resultSet number="1" type="request" endpoint="PathsEndpoint" binding="Paths" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="1"]/@type="request"</test><test ref="" result="passed">contains(/l:log/l:message[@number="1"]/l:httpHeaders/l:Method/@rawURI, "datespace/2006/11/18/16%3A40%3A00-20%3A00%3A42.html")</test><test ref="" result="passed">/l:log/l:message[@number="1"]/l:httpHeaders/l:Method/@value='GET'</test></resultSet><resultSet number="2" type="response" endpoint="PathsEndpoint" binding="Paths" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="2"]/@type="response"</test><test ref="" result="passed">/l:log/l:message[@number="2"]/l:httpHeaders/l:StatusCode/@value='200'</test><test ref="" result="passed">/l:log/l:message[@number="2"]/l:httpHeaders/l:Content-Type/@type='application/soap+xml'</test><test ref="" result="passed">/l:log/l:message[@number="2"]/l:content/soap12:Envelope</test><test ref="" result="passed">count(/l:log/l:message[@number="2"]/l:content/soap12:Envelope/soap12:Body/*)=1</test><test ref="" result="passed">/l:log/l:message[@number="2"]/l:content/soap12:Envelope/soap12:Body/*[local-name()='result' and namespace-uri()='http://example.org/date-space/xsd']</test></resultSet><resultSet number="3" type="request" endpoint="MixedPathsQueryParamsEndpoint" binding="MixedPathsQueryParams" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="3"]/@type="request"</test><test ref="" result="passed">contains(/l:log/l:message[@number="3"]/l:httpHeaders/l:Method/@rawURI, "datespace/2006/11.html?day=18;start=16%3A40%3A00;end=20%3A00%3A42")</test><test ref="" result="passed">/l:log/l:message[@number="3"]/l:httpHeaders/l:Method/@value='GET'</test></resultSet><resultSet number="4" type="response" endpoint="MixedPathsQueryParamsEndpoint" binding="MixedPathsQueryParams" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="4"]/@type="response"</test><test ref="" result="passed">/l:log/l:message[@number="4"]/l:httpHeaders/l:StatusCode/@value='200'</test><test ref="" result="passed">/l:log/l:message[@number="4"]/l:httpHeaders/l:Content-Type/@type='application/soap+xml'</test><test ref="" result="passed">/l:log/l:message[@number="4"]/l:content/soap12:Envelope</test><test ref="" result="passed">count(/l:log/l:message[@number="4"]/l:content/soap12:Envelope/soap12:Body/*)=1</test><test ref="" result="passed">/l:log/l:message[@number="4"]/l:content/soap12:Envelope/soap12:Body/*[local-name()='result' and namespace-uri()='http://example.org/date-space/xsd']</test></resultSet><resultSet number="5" type="request" endpoint="AutoQueryParamsEndpoint" binding="AutoQueryParams" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="5"]/@type="request"</test><test ref="" result="passed">contains(/l:log/l:message[@number="5"]/l:httpHeaders/l:Method/@rawURI, "datespace.html")</test><test ref="" result="passed">/l:log/l:message[@number="5"]/l:httpHeaders/l:Method/@value='GET'</test></resultSet><resultSet number="6" type="response" endpoint="AutoQueryParamsEndpoint" binding="AutoQueryParams" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="6"]/@type="response"</test><test ref="" result="passed">/l:log/l:message[@number="6"]/l:httpHeaders/l:StatusCode/@value='200'</test><test ref="" result="passed">/l:log/l:message[@number="6"]/l:httpHeaders/l:Content-Type/@type='application/soap+xml'</test><test ref="" result="passed">/l:log/l:message[@number="6"]/l:content/soap12:Envelope</test><test ref="" result="passed">count(/l:log/l:message[@number="6"]/l:content/soap12:Envelope/soap12:Body/*)=1</test><test ref="" result="passed">/l:log/l:message[@number="6"]/l:content/soap12:Envelope/soap12:Body/*[local-name()='result' and namespace-uri()='http://example.org/date-space/xsd']</test></resultSet><resultSet number="7" type="request" endpoint="AutoRemainderEndpoint" binding="AutoRemainder" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="7"]/@type="request"</test><test ref="" result="passed">contains(/l:log/l:message[@number="7"]/l:httpHeaders/l:Method/@rawURI, "datespace/2006/11.html?day=18&amp;time=16%3A40%3A00&amp;time=20%3A00%3A42")</test><test ref="" result="passed">/l:log/l:message[@number="7"]/l:httpHeaders/l:Method/@value='GET'</test></resultSet><resultSet number="8" type="response" endpoint="AutoRemainderEndpoint" binding="AutoRemainder" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="8"]/@type="response"</test><test ref="" result="passed">/l:log/l:message[@number="8"]/l:httpHeaders/l:StatusCode/@value='200'</test><test ref="" result="passed">/l:log/l:message[@number="8"]/l:httpHeaders/l:Content-Type/@type='application/soap+xml'</test><test ref="" result="passed">/l:log/l:message[@number="8"]/l:content/soap12:Envelope</test><test ref="" result="passed">count(/l:log/l:message[@number="8"]/l:content/soap12:Envelope/soap12:Body/*)=1</test><test ref="" result="passed">/l:log/l:message[@number="8"]/l:content/soap12:Envelope/soap12:Body/*[local-name()='result' and namespace-uri()='http://example.org/date-space/xsd']</test></resultSet><resultSet number="9" type="request" endpoint="IgnoreUncidedEndpoint" binding="IgnoreUncited" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="9"]/@type="request"</test><test ref="" result="passed">contains(/l:log/l:message[@number="9"]/l:httpHeaders/l:Method/@rawURI, "datespace/2006.html?start=16%3A40%3A00")</test><test ref="" result="passed">/l:log/l:message[@number="9"]/l:httpHeaders/l:Method/@value='GET'</test></resultSet><resultSet number="10" type="response" endpoint="IgnoreUncidedEndpoint" binding="IgnoreUncited" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="10"]/@type="response"</test><test ref="" result="failed">/l:log/l:message[@number="10"]/l:httpHeaders/l:StatusCode/@value='200'</test><test ref="" result="passed">/l:log/l:message[@number="10"]/l:httpHeaders/l:Content-Type/@type='application/soap+xml'</test><test ref="" result="passed">/l:log/l:message[@number="10"]/l:content/soap12:Envelope</test><test ref="" result="passed">count(/l:log/l:message[@number="10"]/l:content/soap12:Envelope/soap12:Body/*)=1</test><test ref="" result="failed">/l:log/l:message[@number="10"]/l:content/soap12:Envelope/soap12:Body/*[local-name()='result' and namespace-uri()='http://example.org/date-space/xsd']</test></resultSet><resultSet number="11" type="request" endpoint="AdditionalQueryParamsEndpoint" binding="AdditionalQueryParams" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="11"]/@type="request"</test><test ref="" result="passed">contains(/l:log/l:message[@number="11"]/l:httpHeaders/l:Method/@rawURI, "datespace/2006.html?timezone=utc&amp;month=11&amp;day=18&amp;time=16%3A40%3A00&amp;time=20%3A00%3A42")</test><test ref="" result="passed">/l:log/l:message[@number="11"]/l:httpHeaders/l:Method/@value='GET'</test></resultSet><resultSet number="12" type="response" endpoint="AdditionalQueryParamsEndpoint" binding="AdditionalQueryParams" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="12"]/@type="response"</test><test ref="" result="passed">/l:log/l:message[@number="12"]/l:httpHeaders/l:StatusCode/@value='200'</test><test ref="" result="passed">/l:log/l:message[@number="12"]/l:httpHeaders/l:Content-Type/@type='application/soap+xml'</test><test ref="" result="passed">/l:log/l:message[@number="12"]/l:content/soap12:Envelope</test><test ref="" result="passed">count(/l:log/l:message[@number="12"]/l:content/soap12:Envelope/soap12:Body/*)=1</test><test ref="" result="passed">/l:log/l:message[@number="12"]/l:content/soap12:Envelope/soap12:Body/*[local-name()='result' and namespace-uri()='http://example.org/date-space/xsd']</test></resultSet><resultSet number="13" type="request" endpoint="EscapingEndpoint" binding="Escaping" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="13"]/@type="request"</test><test ref="" result="failed">contains(/l:log/l:message[@number="13"]/l:httpHeaders/l:Method/@rawURI, "datespace/2006.html?passphrase=%7B4(%23^$@!%7D4^@*%23%7D")</test><test ref="" result="passed">/l:log/l:message[@number="13"]/l:httpHeaders/l:Method/@value='GET'</test></resultSet><resultSet number="14" type="response" endpoint="EscapingEndpoint" binding="Escaping" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="14"]/@type="response"</test><test ref="" result="failed">/l:log/l:message[@number="14"]/l:httpHeaders/l:StatusCode/@value='200'</test><test ref="" result="passed">/l:log/l:message[@number="14"]/l:httpHeaders/l:Content-Type/@type='application/soap+xml'</test><test ref="" result="passed">/l:log/l:message[@number="14"]/l:content/soap12:Envelope</test><test ref="" result="passed">count(/l:log/l:message[@number="14"]/l:content/soap12:Envelope/soap12:Body/*)=1</test><test ref="" result="failed">/l:log/l:message[@number="14"]/l:content/soap12:Envelope/soap12:Body/*[local-name()='result' and namespace-uri()='http://example.org/date-space/xsd']</test></resultSet></resultSets>
\ No newline at end of file
--- 1,2 ----
  <?xml version="1.0" encoding="UTF-8"?>
! <resultSets xmlns:a="http://www.w3.org/2006/11/desc/assertions" xmlns:m="http://www.w3.org/2006/11/desc/messages" xmlns:l="http://www.w3.org/2002/ws/desc/logs/" xmlns:module="http://www.w3.org/2002/ws/desc/6/10/test-module" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/"><head><messages>14</messages><expectedMessages>14</expectedMessages><tests>63</tests><tstamp>2007-01-10T16:13:48.712Z</tstamp><generated>January 11 2007</generated><from>Unknown</from><to>Apache/2.0.54 (Win32)</to></head><resultSet number="1" type="request" endpoint="PathsEndpoint" binding="Paths" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="1"]/@type="request"</test><test ref="" result="passed">contains(/l:log/l:message[@number="1"]/l:httpHeaders/l:Method/@rawURI, "datespace/2006/11/18/16%3A40%3A00-20%3A00%3A42.html")</test><test ref="" result="passed">/l:log/l:message[@number="1"]/l:httpHeaders/l:Method/@value='GET'</test></resultSet><resultSet number="2" type="response" endpoint="PathsEndpoint" binding="Paths" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="2"]/@type="response"</test><test ref="" result="passed">/l:log/l:message[@number="2"]/l:httpHeaders/l:StatusCode/@value='200'</test><test ref="" result="passed">/l:log/l:message[@number="2"]/l:httpHeaders/l:Content-Type/@type='application/soap+xml'</test><test ref="" result="passed">/l:log/l:message[@number="2"]/l:content/soap12:Envelope</test><test ref="" result="passed">count(/l:log/l:message[@number="2"]/l:content/soap12:Envelope/soap12:Body/*)=1</test><test ref="" result="passed">/l:log/l:message[@number="2"]/l:content/soap12:Envelope/soap12:Body/*[local-name()='result' and namespace-uri()='http://example.org/date-space/xsd']</test></resultSet><resultSet number="3" type="request" endpoint="MixedPathsQueryParamsEndpoint" binding="MixedPathsQueryParams" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="3"]/@type="request"</test><test ref="" result="passed">contains(/l:log/l:message[@number="3"]/l:httpHeaders/l:Method/@rawURI, "datespace/2006/11.html?day=18;start=16%3A40%3A00;end=20%3A00%3A42")</test><test ref="" result="passed">/l:log/l:message[@number="3"]/l:httpHeaders/l:Method/@value='GET'</test></resultSet><resultSet number="4" type="response" endpoint="MixedPathsQueryParamsEndpoint" binding="MixedPathsQueryParams" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="4"]/@type="response"</test><test ref="" result="passed">/l:log/l:message[@number="4"]/l:httpHeaders/l:StatusCode/@value='200'</test><test ref="" result="passed">/l:log/l:message[@number="4"]/l:httpHeaders/l:Content-Type/@type='application/soap+xml'</test><test ref="" result="passed">/l:log/l:message[@number="4"]/l:content/soap12:Envelope</test><test ref="" result="passed">count(/l:log/l:message[@number="4"]/l:content/soap12:Envelope/soap12:Body/*)=1</test><test ref="" result="passed">/l:log/l:message[@number="4"]/l:content/soap12:Envelope/soap12:Body/*[local-name()='result' and namespace-uri()='http://example.org/date-space/xsd']</test></resultSet><resultSet number="5" type="request" endpoint="AutoQueryParamsEndpoint" binding="AutoQueryParams" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="5"]/@type="request"</test><test ref="" result="passed">contains(/l:log/l:message[@number="5"]/l:httpHeaders/l:Method/@rawURI, "datespace.html")</test><test ref="" result="passed">/l:log/l:message[@number="5"]/l:httpHeaders/l:Method/@value='GET'</test></resultSet><resultSet number="6" type="response" endpoint="AutoQueryParamsEndpoint" binding="AutoQueryParams" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="6"]/@type="response"</test><test ref="" result="passed">/l:log/l:message[@number="6"]/l:httpHeaders/l:StatusCode/@value='200'</test><test ref="" result="passed">/l:log/l:message[@number="6"]/l:httpHeaders/l:Content-Type/@type='application/soap+xml'</test><test ref="" result="passed">/l:log/l:message[@number="6"]/l:content/soap12:Envelope</test><test ref="" result="passed">count(/l:log/l:message[@number="6"]/l:content/soap12:Envelope/soap12:Body/*)=1</test><test ref="" result="passed">/l:log/l:message[@number="6"]/l:content/soap12:Envelope/soap12:Body/*[local-name()='result' and namespace-uri()='http://example.org/date-space/xsd']</test></resultSet><resultSet number="7" type="request" endpoint="AutoRemainderEndpoint" binding="AutoRemainder" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="7"]/@type="request"</test><test ref="" result="passed">contains(/l:log/l:message[@number="7"]/l:httpHeaders/l:Method/@rawURI, "datespace/2006/11.html?day=18&amp;time=16%3A40%3A00&amp;time=20%3A00%3A42")</test><test ref="" result="passed">/l:log/l:message[@number="7"]/l:httpHeaders/l:Method/@value='GET'</test></resultSet><resultSet number="8" type="response" endpoint="AutoRemainderEndpoint" binding="AutoRemainder" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="8"]/@type="response"</test><test ref="" result="passed">/l:log/l:message[@number="8"]/l:httpHeaders/l:StatusCode/@value='200'</test><test ref="" result="passed">/l:log/l:message[@number="8"]/l:httpHeaders/l:Content-Type/@type='application/soap+xml'</test><test ref="" result="passed">/l:log/l:message[@number="8"]/l:content/soap12:Envelope</test><test ref="" result="passed">count(/l:log/l:message[@number="8"]/l:content/soap12:Envelope/soap12:Body/*)=1</test><test ref="" result="passed">/l:log/l:message[@number="8"]/l:content/soap12:Envelope/soap12:Body/*[local-name()='result' and namespace-uri()='http://example.org/date-space/xsd']</test></resultSet><resultSet number="9" type="request" endpoint="IgnoreUncidedEndpoint" binding="IgnoreUncited" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="9"]/@type="request"</test><test ref="" result="passed">contains(/l:log/l:message[@number="9"]/l:httpHeaders/l:Method/@rawURI, "datespace/2006.html?start=16%3A40%3A00")</test><test ref="" result="passed">/l:log/l:message[@number="9"]/l:httpHeaders/l:Method/@value='GET'</test></resultSet><resultSet number="10" type="response" endpoint="IgnoreUncidedEndpoint" binding="IgnoreUncited" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="10"]/@type="response"</test><test ref="" result="failed">/l:log/l:message[@number="10"]/l:httpHeaders/l:StatusCode/@value='200'</test><test ref="" result="passed">/l:log/l:message[@number="10"]/l:httpHeaders/l:Content-Type/@type='application/soap+xml'</test><test ref="" result="passed">/l:log/l:message[@number="10"]/l:content/soap12:Envelope</test><test ref="" result="passed">count(/l:log/l:message[@number="10"]/l:content/soap12:Envelope/soap12:Body/*)=1</test><test ref="" result="failed">/l:log/l:message[@number="10"]/l:content/soap12:Envelope/soap12:Body/*[local-name()='result' and namespace-uri()='http://example.org/date-space/xsd']</test></resultSet><resultSet number="11" type="request" endpoint="AdditionalQueryParamsEndpoint" binding="AdditionalQueryParams" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="11"]/@type="request"</test><test ref="" result="passed">contains(/l:log/l:message[@number="11"]/l:httpHeaders/l:Method/@rawURI, "datespace/2006.html?timezone=utc&amp;month=11&amp;day=18&amp;time=16%3A40%3A00&amp;time=20%3A00%3A42")</test><test ref="" result="passed">/l:log/l:message[@number="11"]/l:httpHeaders/l:Method/@value='GET'</test></resultSet><resultSet number="12" type="response" endpoint="AdditionalQueryParamsEndpoint" binding="AdditionalQueryParams" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="12"]/@type="response"</test><test ref="" result="passed">/l:log/l:message[@number="12"]/l:httpHeaders/l:StatusCode/@value='200'</test><test ref="" result="passed">/l:log/l:message[@number="12"]/l:httpHeaders/l:Content-Type/@type='application/soap+xml'</test><test ref="" result="passed">/l:log/l:message[@number="12"]/l:content/soap12:Envelope</test><test ref="" result="passed">count(/l:log/l:message[@number="12"]/l:content/soap12:Envelope/soap12:Body/*)=1</test><test ref="" result="passed">/l:log/l:message[@number="12"]/l:content/soap12:Envelope/soap12:Body/*[local-name()='result' and namespace-uri()='http://example.org/date-space/xsd']</test></resultSet><resultSet number="13" type="request" endpoint="EscapingEndpoint" binding="Escaping" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="13"]/@type="request"</test><test ref="" result="failed">contains(/l:log/l:message[@number="13"]/l:httpHeaders/l:Method/@rawURI, "datespace/2006.html?passphrase=%7B4(%23^$@!%7D4^@*%23%7D")</test><test ref="" result="passed">/l:log/l:message[@number="13"]/l:httpHeaders/l:Method/@value='GET'</test></resultSet><resultSet number="14" type="response" endpoint="EscapingEndpoint" binding="Escaping" implementation="Unknown"><test ref="" result="passed">/l:log/l:message[@number="14"]/@type="response"</test><test ref="" result="failed">/l:log/l:message[@number="14"]/l:httpHeaders/l:StatusCode/@value='200'</test><test ref="" result="passed">/l:log/l:message[@number="14"]/l:httpHeaders/l:Content-Type/@type='application/soap+xml'</test><test ref="" result="passed">/l:log/l:message[@number="14"]/l:content/soap12:Envelope</test><test ref="" result="passed">count(/l:log/l:message[@number="14"]/l:content/soap12:Envelope/soap12:Body/*)=1</test><test ref="" result="failed">/l:log/l:message[@number="14"]/l:content/soap12:Envelope/soap12:Body/*[local-name()='result' and namespace-uri()='http://example.org/date-space/xsd']</test></resultSet></resultSets>
\ No newline at end of file
Received on Friday, 12 January 2007 04:36:40 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Friday, 12 January 2007 04:36:40 GMT