Diretrizes

Hoje (01-02-2013) temos a seguinte lista de prioridades:

  • prioritários ⇒ commnon → data type → srs → geometry → raster → data access → memory → xml → xerces → plugin → xlink → gml → filter → color → se → maptools → rp → sam → qt-af → qt-widgets → qt-designer → qt-plugins
  • drivers ⇒ gdal → ogr → postgis → ado → mysql → sqlite → grib → couchdb → mongodb
  • não-prioritários ⇒ metadata → st → xsd → serialization → annotation text → json → yaml → binding → antigrain → idl → tools

Criar um arquivo de configuração para os testes unitários

  • definir a variável TE_DATA_UNITTEST_LOCALE
  • verificar o uso de HAVE_CPPUNIT_OUTPUTTER_H

Revisar o zip com os dados de teste

  • criar um pacote separado para os testes unitários

Básico

  • CMAKE: alterar build/unittest/CMakeLists.txt adicionando em add_subdirectory e criar o CMakeLists.txt para o modulo no sub-dir.
  • Arquivo de dados com subdiretorios para cada modulo Ex: data/module_common/<nome-dados-teste> - ainda em discusão como carregar esses dados. Por modulo? Carregar todo o data.zip? Não carregar via cmake e sim via download? Pode ficar pesado carregar o data.zip todo.
  • Estrutura básica de testes já montada para as classes prioritárias: solution, main.cpp, Config.

Common

Prioritários:

  1. HexUtils: codificação hexa de uma sequência de bytes
    • Fazer os testes para as rotinas do arquivo HexUtils.h → 8 horas
    • Responsável:
  2. ByteSwapUtils: swap de bytes
    • Fazer os testes para as rotinas do arquivo ByteSwapUtils.h → 4 horas
    • Responsável:
  3. UnitOfMeasure e UnitsOfMeasureManager: unidade de medidas, gerenciamento de unidades e conversões → 8 horas
    • Fazer os testes para as classes UnitOfMeasure e UnitsOfMeasureManager
    • Responsável:
  4. TreeItem: formas hierárquicas de representação → 8 horas
    • Fazer os testes para a classe TreeItem
    • Responsável:
  5. Progress: informações do andamento de tarefas
    • Fazer os testes para as classes do Progress contidas no módulo common → 8 horas
    • Responsável:
  6. Library e LibraryManager: carga dinâmica de bibliotecas → 16 horas
    • Fazer os testes para as classes Library e LibraryManager
      • garantir a execução dos testes nos ambientes Windows (DLL), Linux (SO) e Mac (DyLib)
    • Responsável:
  7. MatrixUtils:
    • Fazer os testes para as rotinas do arquivo MatrixUtils.h → 8 horas
    • Responsável:

Não-prioritários:

  1. Counted: referência contada
  2. OSSettingsDir
  3. BaseVisitable e BaseVisitor: visitors
  4. Holder:
  5. ThreadingPolicies
  6. Logger (baixa-prioridade pois pode ser alterado)
  7. Translator (baixa-prioridade pois pode ser alterado)
  8. URL/URI (baixa-prioridade pois pode ser alterado)
  9. ApplicationSettings (baixa-prioridade pois pode ser alterado)

DataType

Prioritários:

  1. Array → 8 horas
  2. Byte Array → 8 horas
  3. SimpleData → 4 horas
  4. CompositeData → 4 horas
  5. Data (tempo) → 8 horas
  6. Properties → 16 horas

Não-prioritários:

  1. Converters → 8 horas
  2. Utils.h → 1 hora

SRS

Prioritários:

  1. Rever os dados de teste → 8
  2. Montar o projeto de testes deste módulo → 8
  3. Ellipsoid → 1 hora
  4. Datum → 1 hora
  5. SpatialReferenceSystem e classes derivadas → 8 horas
  6. Converter → 16 horas

Não-prioritários:

  1. WKTReader → 16 horas

Geometry

Prioritários:

  1. Rever os dados de teste → 8
  2. Montar o projeto de testes deste módulo → 8
  3. Rever os testes dos tipos geométricos, incluindo os novos tipos circulares → 32
  4. Rever os testes dos conversores WKB e GEOS → 16
  5. Rever os teste do parser WKT → 16 horas

Raster

Prioritários:

  1. Rever os dados de teste → 8
  2. Montar o projeto de testes deste módulo → 8
  3. Grid → 8 horas
  4. Raster, Fábrica Raster, Banda → 16 horas
  5. Iteradores → 16 horas
  6. ProxyRaster → 2 horas
  7. RasterSummaryManager e BandSummary → 8 horas
  8. Reprojection → 8 horas
  9. Interpolator → 4 horas
  10. BlockUtils → 8 horas

Data Access

Prioritários:

  1. Rever os dados de teste → 8
  2. Montar o projeto de testes deste módulo → 8

QR Code
QR Code wiki:designimplementation:tests:guidelines (generated for current page)