Процедура регрессивного тестирования

Команды тестировались на RedHat Linux версии 4.2 с использованием bash shell. Где не отмечено, они будут работать на большинстве систем. Команды типа ps и tar, имеют опции, сильно отличающиеся на разных платформах. Пользуйся здравым смыслом, перед тем как вводить эти команды.

Для новой установки или обновления с предыдущих версий Postgres:

Настройка регрессии Postgres

  1. Файл /usr/src/pgsql/src/test/regress/README содержит подробные инструкции для запуска и понимания регрессивных тестов. Сокращенная версия здесь:

    Если postmaster ещё не запущен, запусти postmaster в доступном окне, набрав

    	    postmaster
    	  
    , или запусти демон postmaster в фоновом режиме, набрав
    	    cd
    	    nohup postmaster > regress.log 2>&1 &
    	  

    Запускай postmaster из под бюджета суперпользователя Postgres(обычно, бюджет postgres).

    Замечание: Не запускай postmaster из бюджета root.

  2. Если ты уже вызывал регрессивный тест, очисти рабочий каталог:

    	    cd /usr/src/pgsql/src/test/regress
    	    gmake clean
    	  

    Тебе не нужно вводить "gmake clean", если ты первый раз запускаешь эти тесты.

  3. Собери регрессивный тест. Введи

    	    cd /usr/src/pgsql/src/test/regress
    	    gmake all
    	  

  4. Запусти регрессивные тесты. Введи

    	    cd /usr/src/pgsql/src/test/regress
    	    gmake runtest
    	  

  5. Ты получить на экране (а также в файле ./regress.out) серию предложений, из которых видно какие тесты прошли, а какие нет. Пожалуйста заметьте, что может быть нормально что некоторые тесты "не прошли". Для несработавших тестов, используй diff, чтобы сравнить файлы в каталогах ./results и ./expected. Если float8 не прошёл, введи что-то вроде этого:

    	    cd /usr/src/pgsql/src/test/regress
    	    diff -w expected/float8.out results
    	  

  6. После запуска тестов и исследования результатов, введи

    	    dropdb regression
    	    cd /usr/src/pgsql/src/test/regress
    	    gmake clean
    	  
    чтобы освободить временное дисковое пространство, использованное тестами.