parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Первые тесты...

BeaVe 14.07.2009 10:24

У меня в классе реализовано так, что конфиг для tidy и тестируемый код ложится а отдельные временные файлы, поэтому я просто перекрыл вызов и запустил его из консоли.

Заметил. что 3.4.0b что-то мутит с файлами при сохранении их в UTF-8.

Тестирование я проводил на HTML коде загруженном с главной страницы parser.ru, вот метод загрузчик кода:
@_getDataFromURL[strUrl]
  $fFile[^file::load[text;^untaint[as-is]{$strUrl}][
    $.method[GET]
    $.any-status(true)
    $.charset[utf-8]
    $.headers[
      $.Accept-Charset[utf-8]
      $.Connection[close]
    ]
    $.timeout(100)
  ]]

  $result[$fFile.text]
Код теста:
  $sData[^_getDataFromURL[http://www.parser.ru]]

  ^use[labour/tainting/labourTidy.p]

  $oTidy[^labourTidy::create[]]

  $result[^oTidy.parse[XHTML;$sData]]
Как я сказал, вызов tidy из Парсера я перекрыл и получил для себя строку, которую я закинул в консоль и запустил так.

Данные сохраненные с 3.4.0b и переданные tidy обработались следующим образом, в еrror логе куча следующего:
UTF-8 decoding error of 1 bytes : 0xe8  = U+0008lx
line 36 column 329 - Warning: replacing invalid UTF-8 bytes (char. code U+0008)
UTF-8 decoding error of 1 bytes : 0xff  = U+0255lx
line 36 column 330 - Warning: replacing invalid UTF-8 bytes (char. code U+00FF)
UTF-8 decoding error of 1 bytes : 0xcb  = U+0011lx
line 36 column 332 - Warning: replacing invalid UTF-8 bytes (char. code U+000B)
UTF-8 decoding error of 1 bytes : 0xe5  = U+0005lx
line 36 column 333 - Warning: replacing invalid UTF-8 bytes (char. code U+0005)
UTF-8 decoding error of 1 bytes : 0xe1  = U+0001lx
line 36 column 334 - Warning: replacing invalid UTF-8 bytes (char. code U+0001)
UTF-8 decoding error of 1 bytes : 0xe5  = U+0005lx
line 36 column 335 - Warning: replacing invalid UTF-8 bytes (char. code U+0005)
UTF-8 decoding error of 1 bytes : 0xe4  = U+0004lx
line 36 column 336 - Warning: replacing invalid UTF-8 bytes (char. code U+0004)
UTF-8 decoding error of 1 bytes : 0xe5  = U+0005lx
line 36 column 337 - Warning: replacing invalid UTF-8 bytes (char. code U+0005)
UTF-8 decoding error of 1 bytes : 0xe2  = U+0002lx
line 36 column 338 - Warning: replacing invalid UTF-8 bytes (char. code U+0002)
UTF-8 decoding error of 1 bytes : 0xe0  = U+0000lx
line 36 column 339 - Warning: replacing invalid UTF-8 bytes (char. code U+0000)
....
При использовании Parser 3.3.0 таких сообщений не было. Документ нормально обработался.

Еще было замечено в консоле, что при обработке данных сохраненных с использованием 3.4.0b Парсера не показывались русские буквы после обработки tidy, вместо них показывались пробелы, в редакторе же это были квадраты неопределенных символов, внутри которых "FFFD":
              <blockquote>
                <p><br />
                Parser&#65533;3&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;-&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;, &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;.</p>

                <ul>
                  <li>&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533; 30% &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;!</li>

                  <li>&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533; (&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;, &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;, &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;)</li>

                  <li>&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;</li>

                  <li>&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; XML, XSL, XPath &#65533; DOM</li>

                  <li>&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;</li>

                  <li>&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;</li>

                  <li>&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;-&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;</li>

                  <li>&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; &#65533;&#65533;&#65533;&#65533;&#65533; (160 &#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;!)</li>

                  <li>&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533; UTF-8</li>
                </ul>
              </blockquote>
P.S. Как я понял дело в Parser'е или же может я должен добавить какую-то опцию при вызове exec. Странно с чем связано зависание выполнения file::exec?