aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-support/sass/libsass_git.bb
blob: 4c229cdb751a824f4dac5c6e64dbbe9c4c010688 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
SUMMARY = "C/C++ port of the Sass CSS precompiler"
HOMEPAGE = "http://sass-lang.com/libsass"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=8f34396ca205f5e119ee77aae91fa27d"

inherit autotools

SRC_URI = "git://github.com/sass/libsass.git;branch=3.5-stable"
SRCREV = "39e30874b9a5dd6a802c20e8b0470ba44eeba929"
/*
    streams.c - test `Stream' object
    Copyright (C) 2008 siliconforks.com

    This program is free software; you can redistribute it and/or modify
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License along
    with this program; if not, write to the Free Software Foundation, Inc.,
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#include <assert.h>
#include <string.h>

#include "stream.h"
#include "util.h"

int main(void) {
  Stream * stream;

  stream = Stream_new(0);
  Stream_write_string(stream, "a");
  Stream_write_string(stream, "bc");
  assert(stream->length == 3);
  assert(memcmp(stream->data, "abc", 3) == 0);
  Stream_delete(stream);

  /* test writing chars to stream */
  stream = Stream_new(2);
  Stream_write_char(stream, 'a');
  Stream_write_char(stream, 'b');
  Stream_write_char(stream, 'c');
  assert(stream->length == 3);
  assert(memcmp(stream->data, "abc", 3) == 0);
  Stream_reset(stream);
  Stream_write_char(stream, 'x');
  Stream_write_char(stream, 'y');
  assert(stream->length == 2);
  assert(memcmp(stream->data, "xy", 2) == 0);
  Stream_delete(stream);

  /* test writing file to stream */
  stream = Stream_new(0);
  FILE * f = xfopen("Makefile", "r");
  fseek(f, 0, SEEK_END);
  long file_length = ftell(f);
  fseek(f, 0, SEEK_SET);
  uint8_t * file_contents = xmalloc(file_length);
  fread(file_contents, 1, file_length, f);
  fseek(f, 0, SEEK_SET);
  Stream_write_file_contents(stream, f);
  fclose(f);
  assert(stream->length == (size_t) file_length);
  assert(memcmp(stream->data, file_contents, file_length) == 0);
  free(file_contents);
  Stream_delete(stream);

  stream = Stream_new(0);
  Stream_printf(stream, "%s %d\n", "abc", 123);
  assert(stream->length == 8);
  assert(memcmp(stream->data, "abc 123\n", 8) == 0);
  Stream_delete(stream);

  stream = Stream_new(10);
  size_t length = 0;
  for (int i = 0; i < 100; i++) {
    Stream_printf(stream, "%s %d\n", "abc", i);
    if (i < 10) {
      length += 6;
    }
    else {
      length += 7;
    }
  }
  assert(stream->length == length);
  length = 0;
  for (int i = 0; i < 100; i++) {
    char buffer[8];
    int result = sprintf(buffer, "%s %d\n", "abc", i);
    assert(memcmp(stream->data + length, buffer, result) == 0);
    length += result;
  }
  assert(stream->length == length);
  Stream_delete(stream);

  stream = Stream_new(10);
  char buffer[100];
  for (int i = 0; i < 100; i++) {
    buffer[i] = 'x';
  }
  Stream_write(stream, buffer, 100);
  assert(stream->length == 100);
  for (int i = 0; i < 100; i++) {
    assert(stream->data[i] == 'x');
  }
  Stream_delete(stream);

  exit(EXIT_SUCCESS);
}