Как может я ответы модульного теста от веб-приложения приложение WSGI в Google App Engine?

Расположение упаковки и байт, как описано в C FAQ здесь :

Это для выравнивания. Многие процессоры не могут получить доступ к 2- и 4-байтным количествам (например, ints и long ints), если они переполнены каждым способом.

Предположим, что у вас есть эта структура:

struct {
    char a[3];
    short int b;
    long int c;
    char d[3];
};

Теперь вы можете подумать, что это возможно, чтобы упаковать эту структуру в память следующим образом:

+-------+-------+-------+-------+
|           a           |   b   |
+-------+-------+-------+-------+
|   b   |           c           |
+-------+-------+-------+-------+
|   c   |           d           |
+-------+-------+-------+-------+

Но на процессоре намного проще, если компилятор упорядочивает его как это:

+-------+-------+-------+
|           a           |
+-------+-------+-------+
|       b       |
+-------+-------+-------+-------+
|               c               |
+-------+-------+-------+-------+
|           d           |
+-------+-------+-------+

В упакованной версии обратите внимание на то, что вам и мне, как минимум, немного сложно понять, как обтекают поля b и c? В двух словах, это тоже сложно для процессора. Поэтому большинство компиляторов будут заполнять структуру (как будто с дополнительными невидимыми полями) следующим образом:

+-------+-------+-------+-------+
|           a           | pad1  |
+-------+-------+-------+-------+
|       b       |     pad2      |
+-------+-------+-------+-------+
|               c               |
+-------+-------+-------+-------+
|           d           | pad3  |
+-------+-------+-------+-------+
blockquote>

11
задан David Coffin 20 September 2008 в 08:56
поделиться

2 ответа

Я добавил приложение приложения на проект GAEUnit, который демонстрирует, как записать и выполнить веб-тест с помощью GAEUnit. Образец включает немного измененную версию 'webtest' модуля ('импортируют webbrowser', комментируется, как рекомендовал David Coffin).

Вот 'web_tests.py' файл из 'тестового' каталога примера приложения:

import unittest
from webtest import TestApp
from google.appengine.ext import webapp
import index

class IndexTest(unittest.TestCase):

  def setUp(self):
    self.application = webapp.WSGIApplication([('/', index.IndexHandler)], debug=True)

  def test_default_page(self):
    app = TestApp(self.application)
    response = app.get('/')
    self.assertEqual('200 OK', response.status)
    self.assertTrue('Hello, World!' in response)

  def test_page_with_param(self):
    app = TestApp(self.application)
    response = app.get('/?name=Bob')
    self.assertEqual('200 OK', response.status)
    self.assertTrue('Hello, Bob!' in response)
11
ответ дан 3 December 2019 в 09:21
поделиться

На самом деле WebTest действительно работает в песочнице, пока Вы комментируете

import webbrowser

в webtest / __ init __. py

1
ответ дан 3 December 2019 в 09:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: